Метод getPixel или делаем свой colorPicker.

Здравствуйте, уважаемые любители “этого интересного”. У вас есть изображение и очень бы хотелось получить цвет какой-либо его точки? Вам сюда, под кат, в смысле.

Решил сделать некое подобие colorPicker’a во Flash. Нарисовал “радужный” клип и захотел получить цвет пикселя, под которым находится мышка.

Что пришлось для этого сделать?

Во-первых создать класс Main.as для своего мувика. Мувик у меня содержит 3 клипа. 1 – сам радужный клип круглой формы, второй – курсорчик в виде крестика, а 3 – белый прямоугольник, который и будет показывать нам цвет пикселя, чтобы наглядно.
Содержимое класса Main:

/**
* @author DaFive
* mailto: dafive.get@gmail.com
* */

package
{
  import flash.display.Bitmap;
  import flash.display.BitmapData;
  import flash.display.MovieClip;
  import flash.display.BitmapDataChannel;
  import flash.events.Event;
  import flash.events.MouseEvent;
  import flash.geom.ColorTransform;
  
  
  public class Main extends MovieClip
  {
    private var BD:BitmapData;
    private var BMAP:Bitmap;
    
    public function Main()
    {
      Init();
    }
    
    private function Init():void
    {
      BD = new BitmapData(mc.width, mc.height, true, 0);
      
      BD.draw(mc);
      
      BMAP = new Bitmap(BD);
      
      removeChild(mc);
      
      addChild(BMAP);
      
      swapChildren(BMAP, cursor);
      
      stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMOVE, false, 0, true);
    }
    
    private function onMouseMOVE(e:MouseEvent):void
    {
      var col = BD.getPixel(mouseX, mouseY);
      
      if (col == 0)
      {
        cursor.x = -1000;
        cursor.y = -1000;
        MovieClip(mc_trans).transform.colorTransform = new ColorTransform();
      }
      else
      {
        cursor.x = mouseX;
        cursor.y = mouseY;
        
        var ct:ColorTransform = new ColorTransform();
        ct.color = col;
        MovieClip(mc_trans).transform.colorTransform = ct;
      }
    }
  }
}

* This source code was highlighted with Source Code Highlighter.

Вкратце. С клипа mc делается BitmapData (BD), которая рисуется в Bitmap (BMAP). Затем по событию mouseMove берём цвет пикселя, находящегося под курсором и красим клип.

Сие творение можно увидеть по этой ссылке – http://dafive.webservis.ru/picker/.

Кому надо исходник – пишите в комменты.

Комментариев: 4 на “Метод getPixel или делаем свой colorPicker.”

  1. Альберт пишет:

    Благодарю за предоставленную информацию.

  2. Рома пишет:

    Можете прислать исходники флэш раскраски? Заранее спасибо

  3. Виктор пишет:

    Очень понравилось. Если не сложно пришлите исходник.
    Спасибо.


Добавить комментарий

Fill in your details below or click an icon to log in:

Логотип WordPress.com

You are commenting using your WordPress.com account. Log Out / Изменить )

Фотография Twitter

You are commenting using your Twitter account. Log Out / Изменить )

Фотография Facebook

You are commenting using your Facebook account. Log Out / Изменить )

Connecting to %s

Follow

Get every new post delivered to your Inbox.