Get Adobe Flash player

白黒化した画像の明度を判別して0〜9のビットマップフォントを割り振ってます。
フォントの密度がいい感じにばらけてないとグラデーションが綺麗に出ないのが気になるところ。

//画像ロードコンプリート時
private function onComplete( e:Event ):void{
  ...
	var m:Matrix = new Matrix();
	//読み込んだBitmapDataを縮小しておく
	m.scale( 1/W, 1/H);
	_source = new BitmapData( _bmpd.width/W, _bmpd.height/H, false, 0x0);
	_source.draw( _bmpd, m);
	//白黒化してRGBそれぞれを同じ値にする
	_source.applyFilter( _source, _source.rect, point, new ColorMatrixFilter([ 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0.3, 0.59, 0.11, 0, 0, 0, 0, 0, 1, 0]) );
	_canvas = new BitmapData( _source.width*W, _source.height*H, false, 0xFFFFFF);
	...
}

//明度の判別
private function brightness( p:Point ):uint{
	//指定したピクセルのB値(RもGも一緒)を取得
	var c:uint = _source.getPixel( p.x, p.y) & 0xFF;
	//この場合は0〜9に割り振る
	return Math.floor( c/(25.6) );
}

全体のコードはwonderflで。

 

Comment&Trackback

Trackback URI for this entry

 

次のエントリー
前のエントリー