2007.07.31
category
comments

ロモフィルター

ロシアのトイカメラLOMOで撮影したような効果を与えるフィルターを作ってみた。全体的にハイコントラストにして四隅が暗くなるように調整。勝手にロモフィルターと命名することに。

LomoFilter.as

ACTIONSCRIPT:
import flash.geom.Matrix;

class info.five.as2.filters.LomoFilter
{
   function LomoFilter()
   {
      trace("LomoFilterクラスの読込完了");
   }

   //------------------------------
   //   LomoFilterセット関数
   //     mc:ムービークリップ
   //     vol:ボリューム(1.0~2.0)
   //------------------------------
   function setLomoFilter(mc:MovieClip, vol:Number)
   {
      mc.createEmptyMovieClip("lomo", mc.getNextHighestDepth());
      mc.lomo.blendMode = "overlay";

      with(mc.lomo)
      {
         fillType = "radial";
         colors = [0x000000, 0x000000, 0x000000];
         alphas = [0, 50, 100];
         ratios = [0, 200, 255];
         spreadMethod = "pad";
         interpolationMethod = "RGB";
         focalPointRatio = 0;
         matrix = new Matrix();
         matrix.createGradientBox(mc._width*vol, mc._height*vol, 0, (mc._width-mc._width*vol)/2, (mc._height-mc._height*vol)/2);
         beginGradientFill(fillType, colors, alphas, ratios, matrix, spreadMethod, interpolationMethod, focalPointRatio);
         moveTo(0, 0);
         lineTo(0, mc._height);
         lineTo(mc._width, mc._height);
         lineTo(mc._width, 0);
         lineTo(0, 0);
         endFill();
      }
   }
}

flaの1フレーム目に以下のコードを書く。

ACTIONSCRIPT:
import info.five.as2.filters.LomoFilter;

var lomo:LomoFilter = new LomoFilter();
lomo.setLomoFilter(thumb1, 1.4);
lomo.setLomoFilter(thumb2, 1.4);
lomo.setLomoFilter(thumb3, 1.4);
lomo.setLomoFilter(thumb4, 1.4);

setLomoFilter()の第1引数はmcのインスタンス名。第2引数はフィルター量になってます。(1.0~2.0くらいで)もうちょっとぼけ具合とかピンホールとか色々弄りたかったけど、やりすぎない程度にしてみました。

Post a comment




Comment

Trackbacks

この記事のコメント・トラックバックRSS