2017-12-13 23 views
0

ビットマップ(pngファイル)を別のビットマップの上に追加して、デバイスに保存しようとしています。最初の部分以外はすべてうまく動作します。私のコードの2つのビットマップをマージする際の問題

ビット:ロードされたファイルを変換

1は、ビットマップに

loadedBitmap = e.target.content as Bitmap; 
clonedBitmap = new Bitmap(loadedBitmap.bitmapData.clone()); 

bitmapData = new BitmapData(e.target.content.width, e.target.content.height); 
bitmapData.draw(clonedBitmap); 

アプリ内で生成された2秒のビットマップ

genBitmapData = new BitmapData(bgWidth, bgHeight, false); 
genBitmap = new Bitmap(genBitmapData); 
BitmapDataにclonedBitmap(外部ファイル)を追加すること
var positionMatrix : Matrix = new Matrix(1,0,0,1,0,0); 
genBitmapData.draw(clonedBitmap, positionMatrix); 

ステップ3の問題点は、ロードされたファイルは、デバイスのストレージに保存すると、アプリによって生成されたビットマップの下になってしまうということですclonedBitmap 。私は順序を逆にすると:ロードされたビットマップが表示ですべてのファイルを保存するときにいない間

bitmapData.draw(genBitmap, positionMatrix); 

のみ生成されたビットマップは/可視表示されます。私が達成したいのは、clonedBitmap(外部のpngファイル)をgenBitmapの上に置いて、BitmapDataオブジェクトと共に保存することです。そのため、私のデバイスに保存することができます。

私はどんなヒントにも感謝します。

+0

ここでは本当に奇妙なことをしています。 2つの** Bitmap **オブジェクトで作業し、必要に応じてzオーダーすることはできませんか?また、** draw **によってオリジナルのビットマップデータを複製することができます** BitmapData **を複製することは別の奇妙なことです。 – Organis

答えて

0

ビットマップ上にビットマップを描画する場合は、ビットマップをオーバーレイしてどこかに透明にする必要があります。そうしないと、すべての下位ビットマップのピクセルが上位レイヤで上書きされます。したがって、アルファチャンネル(透明度= true)でこれらのビットマップを作成し、何かを描画した後(少なくともどこかで)上層ビットマップも透明であることを確認してから、最初の下位レイヤーを描画してから上層レイヤーをシングルBitmapDataオブジェクト。

ビットマップを変換しないので、BitmapData.copyPixels()メソッドを使用することをお勧めします。

0

コードが正常に動作することが判明しました。私はちょっと見落として間違った機能に入れてしまい、問題が発生しました。

関連する問題