flash.filters.ConvolutionFilter





this is flash contents.

ConvolutionFilterについて調べてみたのでメモ.

要しちゃうと隣り合うピクセル通しの色合いに重みを付けて再着色してくれるということ...??
ぼかしだとかシャープだとかエンボスみたいな効果までこれで作り出せちゃう.

コード

import flash.display.BitmapData;
import flash.filters.ConvolutionFilter;
import flash.geom.Matrix;
import mx.controls.NumericStepper;

var image = BitmapData.loadBitmap('image');
var convoFilter = new ConvolutionFilter(5, 5);
var target = this;


// イメージのアタッチ
this.imageLoader_mc.attachBitmap(image, 1);


// ConvolutionFilterの適応
this.initFilter = function() {
  convoFilter.matrix = [
    matrix11_mc.value, matrix12_mc.value, matrix13_mc.value, matrix14_mc.value, matrix15_mc.value, 
    matrix21_mc.value, matrix22_mc.value, matrix23_mc.value, matrix24_mc.value, matrix25_mc.value, 
    matrix31_mc.value, matrix32_mc.value, matrix33_mc.value, matrix34_mc.value, matrix35_mc.value, 
    matrix41_mc.value, matrix42_mc.value, matrix43_mc.value, matrix44_mc.value, matrix45_mc.value, 
    matrix51_mc.value, matrix52_mc.value, matrix53_mc.value, matrix54_mc.value, matrix55_mc.value];

    convoFilter.divisor = target.divisor_mc.value;
    convoFilter.bias = target.offset_mc.value;

    target.imageLoader_mc.filters = [convoFilter];
};


// リスナーの設定
var listener = new Object();
  listener.change = function(event) {
  target.initFilter();
};

for (var i in this) {

  if (this[i] instanceof NumericStepper) {
    this[i].addEventListener('change', listener);
  }
}

download

参考)
psyark | いつも心にファイヤーを
Flash馬鹿一代ブックマーク | ConvolutionFilter
晴れときどきGIMP | コンボリューション行列
msdn | .NET Framework 開発者ガイド | 色の変換(IEで見たほうがいい)


contributor nao : 2006年03月02日 02:53

trackback

trackback for this entry URL:
http://blog.graffiti-web.org/mt/mt-tb.cgi/395

comment