画像のピクセル値を取得する - Action Script

Flash Action Script で画像のピクセル情報を取得するコードを紹介します。

概要

画像のピクセルごとのカラー情報を参照する場合、BitmapDataクラスのgetPixelメソッドを使用します。

コード

以下のコードでは、Loaderを用いて画像ファイルを読み込み、読み込んだ画像ファイルの幅と高さを取得し、画像サイズと同じ大きさのBitmapDataクラスを作成し、そこに読み込んだ画像を描画します。次に、画像のピクセルをstepで指定したピクセルごとにスキャンし、カラー情報を取得しそのカラーで幅と高さがstepピクセルの正方形をBitmapDataに描画します。
この処理を画像の幅と高さ繰り返します。実行結果としてモザイクがかかったような効果が得られます。
var url:String = "http://www.ipentec.com/products-banner/lcx.png";  
var urlReq:URLRequest=new URLRequest(url);  

var ld:Loader = new Loader();  
ld.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
ld.load(urlReq);  

function onComplete(eventObj:Event):void{
	trace("Complete");
	var pw:int = ld.content.width;
	var ph:int = ld.content.height;
	trace(pw+","+ph);
	
	var bmpd: BitmapData = new BitmapData(pw, ph, false, 0xFFFFFF);
	bmpd.draw(ld);
	
	var step:int = 5;
	for (var i:int=0; i< pw; i=i+step){
		for (var j:int=0; j<ph; j=j+step){
			var px:uint = bmpd.getPixel(i,j);
			var r:Rectangle = new Rectangle(i,j,step,step);
			bmpd.fillRect(r, px);
		}
	}
	
	var bmp: Bitmap = new Bitmap(bmpd);
	addChild(bmp);
}

実行結果



著者
iPentecのメインデザイナー
Webページ、Webクリエイティブのデザインを担当。PhotoshopやIllustratorの作業もする。
掲載日: 2009-10-28
iPentec all rights reserverd.