2016-07-28 4 views
1

カメラでキャプチャされたシェイプによって背景画像がマスクされるインタラクティブなアニメーションを作成しています。すべてのフレームで、カメラは画像を白黒画像に変換し、背景画像をマスクします。AS3.0でのブレンド画像の結果の保存

"now"はカメラで撮影した画像、 "P1"は背景画像です。

ブレンドモードの乗算を使用してマスクした後、マスクされて他のものに使用する結果イメージを保存したいと思います。 blendmode関数を使用すると、結果がどのように定義されているか分かりません。 結果画像をキャプチャ、コピー、または保存することはできますか?

var P1:MovieClip = new p1(); 
var mskimg:MovieClip = new maskimage(); 

var bitmap_obj:Bitmap = new Bitmap(now); 

addChild(P1); 
P1.blendMode = BlendMode.LAYER; 
addChild(bitmap_obj); 
bitmap_obj.blendMode = BlendMode.MULTIPLY; 

enter image description here

+0

親をBitmapDataクラスで描画することができますが、これはすべてのフレームでそれを行う場合には非常に高価です。 – BadFeelingAboutThis

+0

[ドキュメントのサイトで私の例を見てください](http://stackoverflow.com/documentation/actionscript-3/2814/drawing-bitmaps/9508/draw-a-display-object-into-bitmap-data#t= 20160728215336898734) - その関数を使用し、ブレンドされた要素の親を渡します(コードのコンテキストの場合は 'this'となります) – BadFeelingAboutThis

+0

これは[documentation](http://help.adobe.com/jp/en_US/)です。 FlashPlatform/reference/actionscript/3/flash/display/BitmapData.html#draw())を描画メソッドに追加します。 – BadFeelingAboutThis

答えて

0

あなたは、あなたがコンテナに描画する予定のすべてをかける場合は、その後、いくつかのBitmapDataに完全な階層オブジェクトを描画するBitmapData.draw()を呼び出してマスクされたオブジェクトを描画することができます。次に、そのビットマップデータを使用して、何でも好きなことを行うことができます。Graphics.beginBitmapFill()FileReference.save()などです。しかし、操作は高価なので、ユーザーのアクションに応答して描画をトリガーし、アプリケーションのロジックで必要とされない限り、すべてのフレームをデフォルトでは実行しない方がよいでしょう。

+0

ありがとうございました!私は今BitmapとBitmapDataについてよく理解でき、私がやろうとしていることをすることができました。また、機能のコストについて言及してくれてありがとう。私はそれに注意する。 –

関連する問題