静岡理工科大学 菅沼ホーム ActionScript 目次 索引

ConvolutionFilter クラス

[内容]

  入力された n 行 m 列の行列 A の値をビットマップオブジェクトの bx,y 要素とその周辺要素に作用させることによって,bx,y 要素の色を変化させます.この操作は,行列の値により,ぼかし,輪郭検出等に利用することができます.例えば,3 行 3 列の行列 A の場合は,以下のような計算が行われます.
	新 bx,y = ( a11 × bx-1,y-1 + a12 × bx,y-1 + a13 × bx+1,y-1 +
	            a21 × bx-1,y + a22 × bx,y + a23 × bx+1,y +
	            a31 × bx-1,y+1 + a32 × bx,y+1 + a33 × bx+1,y+1)
	          / 序数 + バイアス
		
継承: ConvolutionFilter → BitmapFilter → Object

[プロパティ]

[メソッド]

[使用例]

  1. ConvolutionFilter フィルタの使用例」と,そのプログラム( ConvolutionFilter_e.as )です.
    package
    {
    	import flash.display.Sprite;
    	import flash.display.Bitmap;
    	import flash.display.BitmapData;
    	import flash.filters.ConvolutionFilter;
    
    	[SWF(backgroundColor="0xeeffee", width="300", height="200", frameRate="20")]
    
    	public class ConvolutionFilter_e extends Sprite
    	{
    		public function ConvolutionFilter_e()
    		{
    			init();
    		}
    		
    		private function init():void
    		{
    			var x1 : int, y1 : int;
    			var bmd1 : BitmapData = new BitmapData(stage.stageWidth/2, stage.stageHeight, true, 0x00000000);
    			for(x1 = 25; x1 <= 125; x1++) {
    				for(y1 = 50; y1 < 100; y1++)
    					bmd1.setPixel32(x1, y1, 0xffff0000);
    				for(y1 = 100; y1 <= 150; y1++)
    					bmd1.setPixel32(x1, y1, 0xff00ff00);
    			}
    			var bmd2 : BitmapData = bmd1.clone();
    			var bm1 : Bitmap = new Bitmap(bmd1);
    			var bm2 : Bitmap = new Bitmap(bmd2);
    			bm2.x = 150;
    			var a : Array = [1, 1, 1, 1, 1,
    							 1, 1, 1, 1, 1,
    							 1, 1, 1, 1, 1,
    							 1, 1, 1, 1, 1,
    							 1, 1, 1, 1, 1];
    			bm2.filters = [new ConvolutionFilter(5, 5, a, 25, 0)];
    			addChild(bm1);
    			addChild(bm2);
    		}
    	}
    }
    			

[参照]

Bitmap クラスBitmapData クラスBitmapFilter クラス

静岡理工科大学 菅沼ホーム ActionScript 目次 索引