« setRGB() | メイン | crossdomain.xml »

April 15, 2007

画像の色取得





import flash.display.BitmapData;
import flash.geom.ColorTransform;

var pict_bd:BitmapData = BitmapData.loadBitmap("hand.jpg");
bitmap_mc.attachBitmap(pict_bd, 0);

//マウスをスポイト画像に変更
this.attachMovie("pointer", "pointer", 1);
pointer._visible = false;
var mouseListener:Object = new Object();
mouseListener.onMouseMove = function():Void {
 var xMouse:Number = bitmap_mc._xmouse;
 var yMouse:Number = bitmap_mc._ymouse;
 if (xMouse >= 0 && xMouse < 663 && yMouse >= 0 && yMouse < 200) {
  Mouse.hide();
  pointer._visible = true;
  pointer._x = _xmouse;
  pointer._y = _ymouse;
  var clr:Number = pict_bd.getPixel(xMouse, yMouse);
  showInfo([xMouse+1, yMouse+1], clr);
 } else {
  Mouse.show();
  pointer._visible = false;
 }
 updateAfterEvent();
};
Mouse.addListener(mouseListener);

var clrTrans:ColorTransform = new ColorTransform(0, 0, 0, 1, 0, 0, 0, 0);

showInfo([0, 0], 0xFFFFFF);
function showInfo(pos:Array, clr:Number):Void {
 picker.xPos.text = pos[0];
 picker.yPos.text = pos[1];
 var obj:Object = colorToRGB(clr);
 kpicer.rgb.text = colorToStrRGB(clr);//RGBを表示

 clrTrans.rgb = clr;
 picker.clr.transform.colorTransform = clrTrans;
 
 //カラーイメージに色を設定
 var myColor: Color = new Color( colorimg );
 myColor.setRGB( clr );
}

//カラー関数
function colorToRGB(clr:Number):Object {
 var r:Number = (clr & 0xFF0000) >> 16;
 var g:Number = (clr & 0x00FF00) >> 8;
 var b:Number = clr & 0x0000FF;
 var obj:Object = {r: r, g: g, b: b};
 return obj;
}
//カラーを16進数に
function colorToStrRGB(clr:Number):String {
 var rgb:String = ("00000" + clr.toString(16)).substr(-6).toUpperCase();
 return rgb;
}

投稿者 ikoma : April 15, 2007 02:17 AM

トラックバック

このエントリーのトラックバックURL:
http://www.publicroots.com/cgi-bin/mt/mt-tb.cgi/31

コメント

コメントしてください




保存しますか?