AS3 BitmapData CopyPixels с альфа

Я пытаюсь скопировать пиксели растрового изображения в BitmapData с прозрачностью, скажем,.5, но я не могу найти ссылку на это где-нибудь в Google или здесь!

у меня есть мой стандартный код пикселя копии

_bitmapData.copyPixels(_bitmaps.vault[BitmapNames.BITMAPNAME], SCREENRECT, _drawPoint, null, null, true);

Я вижу, что первое пустое значение, которое я передаю, - это BitmapData с меткой alphaBitmapData:BitmapData так что я предполагаю, что это как-то связано с этим, но я не могу решить это!

Любая помощь будет оценена, ура!

2 ответа

Решение

Я принял ответ Уилла Кру в качестве ответа (хотя и основанного только на теории) ниже - это код, используемый для того, чтобы положить этот метод за безумие!!

var alphaBitmap:BitmapData = new BitmapData(width, height, true, toARGB(0x000000, (.5 * 255)));

_bitmapData.copyPixels(_bitmaps.vault[BitmapNames.BITMAP], _drawRect, _drawPoint, alphaBitmap, null, true);

здесь есть функция toARGB alpha + RGB -> ARGB?

Перейдя по этой ссылке, вы найдете некоторые пояснения по поводу переменных.

Короче говоря, когда вы устанавливаете последний параметр (mergeAlpha:Boolean) в значение true, функция будет учитывать 4-й параметр (alphaBitmap:BitmapData) при копировании пикселей, эффективно используя альфа alphaBitmap для объединения скопированных пикселей. Таким образом, вы должны передать то же растровое изображение, которое вы используете для первого параметра, 4-му параметру, соответственно установить 5-й параметр (alphaPoint:Point) и установить для последнего параметра значение true.

Другие вопросы по тегам