1

我正在尝试以 0.5 的透明度将位图的像素复制到 BitmapData 中,但我似乎在谷歌或这里的任何地方都找不到对此的任何引用!

我有我的标准复制像素代码

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

我可以看到我传递的第一个空值是一个标有 BitmapData 的值,alphaBitmapData:BitmapData所以我假设它与此有关,但我无法解决!

任何帮助将不胜感激,干杯!

4

2 回答 2

4

此链接之后,您将找到有关变量的一些解释。

简而言之,当您将最后一个参数 (mergeAlpha:Boolean) 设置为 true 时,该函数将在复制像素时考虑第四个参数 (alphaBitmap:BitmapData),从而有效地使用 alphaBitmap 的 alpha 来合并复制的像素。因此,您应该将用于第一个参数的相同位图传递给第四个参数,相应地设置第五个参数 (alphaPoint:Point) 并将最后一个参数设置为 true。

于 2012-08-29T15:30:09.733 回答
1

我已经接受了 Will Kru 的回答作为下面的答案(尽管只是基于理论)是用于将方法置于疯狂背后的代码!

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

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

在这里找到alpha + RGB -> ARGB的 toARGB 函数?

于 2012-08-29T15:51:00.100 回答