nengafl に投稿したよ
2010/01/15 20:51 - AS3.0
10万円そりゃ欲しいけどもう既に勝敗は決した流れ。そんな今になって nengafl に投稿してる出遅れたワタシ。 まぁでもお金も欲しいけど、他人様がお作りになる作品を拝見したい! という想いも強いので投稿した次第です。
テーマは、今までずっとエントリーしてきた画像処理に関すること。 ウェブカム映像に何かエフェクトをかけてクールな映像作ろうゼ、って話です。
投稿コードの構成ですが、以下のクラスを一つのファイルとして記述しています。
- エフェクタ
- EffectorFormat クラス(エフェクタのフォーマット)
- EffectorGrayScale クラス(グレイスケールエフェクタ)
- EffectorNegative クラス(反転エフェクタ)
- EffectorPixelization クラス(モザイクエフェクタ)
- EffectorPosterization クラス(減色エフェクタ)
- EffectorSharp クラス(鮮鋭化エフェクタ)
- EffectorSmoothing クラス(平滑化エフェクタ)
- AbstractEffector クラス(エフェクタのスーパークラス)
- ChainEffectors クラス(エフェクタを実行するクラス)
- Nengafl クラス(ドキュメント)
- Model クラス(モデル)
- View クラス(ビュー)
この中で、書き換え対象になるのは Nengafl と EffectorFormat の二つです。
Nengafl のコンストラクタの一番最初で、各エフェクタのインスタンスを生成し、ChainEffectors に addEffector で追加していきます。 この追加した順番でウェブカム映像にエフェクトをかけていく仕様です。同じエフェクタを使っていても、順番を変えるとずいぶん効果が変わります。
個別フィルタを6個用意してありますが、オリジナルエフェクタを作るため用に、EffectorFormat を用意しました。
以下、個別エフェクタに関する説明。
EffectorGrayScale
BitmapData をグレイスケールにする静的エフェクタ。
パラメータなし。
グレイスケール参照
EffectorNegative
BitmapData をネガ反転する静的エフェクタ。
パラメータなし。
反転参照
EffectorPosterization
BitmapData を減色するエフェクタ。
パラメータ:degree 減色の段階。2 以上 256 以下の整数。デフォルト 8。
EffectorPixelization
モザイクを BitmapData にかけるエフェクタ。
パラメータ:size モザイクの1辺のサイズ。デフォルト 8。
このエフェクタは他のエフェクタと異なり、コンストラクタで第1引数に対象 BitmapData の width、第2引数に対象 BitmapData の height を要求します。
モザイク参照
EffectorSmoothing
BlurFilter によるボカしで BitmapData を平滑化するエフェクタ。 パラメータを変えることでボカしエフェクタとしても使用する。
パラメータ:strength ボケの強さ。BlurFilter.blurX、BlurFilter.blurY の値。デフォルト 2。
パラメータ:quality ボケの質。BlurFilter.quality の値(BitmapFilterQuality.○○)。デフォルト BitmapFilterQuality.MEDIUM。
EffectorSharp
BitmapData をシャープにするエフェクタ。
パラメータ:strength 鮮鋭化の強さ。デフォルト 1.0。マイナスも可。
これは今後話題にするものです。
投稿したサンプルは、以下のようなパラメータのエフェクタを、以下の順番でかけたものです。
- EffectorSmoothing.strength = 16;
- EffectorPosterization.degree = 8;
- EffectorSharp.strength = 5;
タイトルは「アトゥム神の眼(テレンス・T・ダービー)NO! NO! NO! NO!」
繰り返しますが、同じ条件のエフェクタでも実行する順番を変えると全く違った映像になるのが画像処理の面白いところ。
このサンプルのは、もう本当に基礎の基礎なエフェクタなんで、皆さまのお作りなるシビれるエフェクトを是非とも拝見できましたら幸いです。