Android:如何将透明度蒙版应用于位图?

时间:2011-08-23 13:38:41

标签: android bitmap

我有一个ARGB_8888位图,我需要在绘制到画布之前应用alpha蒙版。 Alpha掩码是表示图像的alpha通道的字节流。我可以为Bitmap检索像素值的int数组,遍历数组并为每个像素设置alpha,从新的像素值创建位图,并将其绘制到画布上;但这似乎效率极低。因此,我希望使用一些内置功能将掩码应用于位图;但找不到任何有用的东西。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

首先,确保您有一个带有Bitmap.isMutable()的可变位图。

您是否尝试Bitmap.setHasAlpha并在可变Bitmap上使用算术运算来简单地“添加”Alpha通道?

也就是说,如果您的像素为#00FF0000,则可以添加#FF000000以使其完全透明。

这比复制到新的Bitmap要高效得多。

也许像

int desiredAlpha = 0x0F000000;
for(int i = 0; i < Bitmap.getwidth; i++)
{
    for(int j = 0; j < Bitmap.getHeight; j++)
    {
         Bitmap.setPixel(Bitmap.getPixel(i,j) + desiredAlpha);
    }
}

希望这有帮助!