Как нарисовать прозрачную графику на прозрачном BitmapData? - PullRequest
2 голосов
/ 06 февраля 2012

Я пытаюсь нарисовать PNG-файлы на прозрачном BitmapData.

Я создаю свои BitmapData вот так (используя цвет ARGB):

new BitmapData(width, height, true, 0x00000000);

И очищаю их, используято же значение ARGB:

bitmapData.fillRect(bitmapData.rect, 0x00000000);

Когда я использую copyPixels() для рисования графики на очищенных BitmapData, я получаю такой результат:

enter image description here

Если яне используйте ARGB для цвета BitmapData, он работает нормально:

enter image description here

Но я должен указать сплошной fillColor, то есть я не могу отобразить то, что скрывается за растровым изображением.

Как я могу сделать свои BitmapData прозрачными, но выше этого не происходит?

1 Ответ

6 голосов
/ 06 февраля 2012

Из документации по BitmapData::CopyPixels():

"Свойство mergeAlpha определяет, используется ли альфа-канал , когда прозрачное изображение копируется в другое прозрачное изображение . Чтобы скопировать пиксели с данными альфа-канала, установите для свойства mergeAlpha значение true. по умолчанию свойство mergeAlpha имеет значение false. "

На этот раз документация Adobe действительно говорит правду.

copyPixels(myPNG, rect, point, null, null, true);

... должен это исправить (и сделал). Предполагаю, что он отключен по умолчанию из соображений производительности, потому что я не могу придумать, где было бы полезно отключить его.

...