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.