Matrix

独自のBlurフィルタを作ってみる。となりのとなりくらいからも影響を受ける感じで 5 x 5 のmatrixにしてみる。おもしろい。ぼやぼや

package {
    import flash.display.*;
    import flash.filters.*;
    import flash.net.*;
    import flash.events.MouseEvent;

    public class Matrix extends Sprite {
        public var url:String = 'http://f.hatena.ne.jp/images/fotolife/m/marieweb/20080405/20080405163625.jpg';
        public var loader:Loader;

        public function Matrix():void {
            loader = new Loader();
            var req:URLRequest = new URLRequest(url);
            loader.x = 10;
            loader.load(req);
            addChild(loader);
            loader.addEventListener(MouseEvent.CLICK, applyFilter);
        }

        public function applyFilter(e:MouseEvent):void {
            var matrix:Array = [0, 1, 2, 1, 0,
                                1, 2, 2, 2, 1,
                                2, 2, 2, 2, 2,
                                1, 2, 2, 2, 1,
                                0, 1, 2, 1, 0];
            var convolution:ConvolutionFilter = new ConvolutionFilter();
            convolution.matrixX = 5;
            convolution.matrixY = 5;
            convolution.matrix = matrix;
            convolution.divisor = 34;
            loader.filters = [convolution];
        }
    }
}

写真はこちらから。
http://f.hatena.ne.jp/marieweb/20080405163625