1

Matrixを使用して、通常の方法でbitmapDataのサイズを変更しています。ビットマップデータにはアルファチャネル(PNGからのもの)があり、アルファチャネルは無視されます...

var m:Matrix = new Matrix();
m.scale(.5, .5);

var bmp:BitmapData = new BitmapData(bitmapData.width * .5, bitmapData.height * .5,true);
bmp.draw(bitmapData,m);

var resizedBitmap = new Bitmap(bmp);

アルファチャネルをサポートするために、BitmapData()コンストラクターにtrueの3番目のパラメーターを追加しましたが、draw()呼び出し後もすべての透明度が失われています。どうしたの?

4

1 に答える 1

4

この問題の解決策は、4番目のパラメーター(fillColor)をBitmapDataコンストラクターに追加することです。

var bmp:BitmapData = new BitmapData(bitmapData.width * .5, bitmapData.height * .5,true,0x00000000);

ドキュメントから:

完全に透明なビットマップを作成するには、transparentパラメーターの値をtrueに設定し、fillColorパラメーターの値を0x00000000(または0)に設定します。

于 2013-03-10T01:04:43.337 に答える