Actionscript 3 - draw () с прозрачностью на растровом изображении - PullRequest
0 голосов
/ 07 ноября 2011

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

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

var image:Bitmap;
var logo:Bitmap;
//...
logo.alpha = 0.3;
image.bitmapData.draw(logo);

1 Ответ

2 голосов
/ 07 ноября 2011

попробуйте это:

var adjustAlpha:ColorTransform = new ColorTransform();
adjustAlpha.alphaMultiplier = 0.3
var logoArea:Rectangle = new Rectangle(0, 0, logo.width, logo.height);
logo.bitmapData.colorTransform(logoArea, adjustAlpha);
image.bitmapData.draw(logo);

Когда вы изменяете альфа-значение растрового изображения, вы не изменяете его фактические растровые данные, поэтому при рисовании вы все равно копируете неизмененные данные, найденные в bitmapData.

Приведенный выше код использует свойство colorTransform для настройки каждого пикселя в bitmapData. Вы можете ориентироваться на определенные области, изменяя размер прямоугольника.

(Вам также потребуется импортировать класс ColorTransform).

...