位图android上的不透明度贴图

时间:2013-07-19 14:28:16

标签: android opacity

我有两个位图,一个是壁纸图像,另一个是包含alpha信息的黑白图像。我想将这些alpha信息应用于壁纸图片。

现在我知道我可以像这样改变不透明度:

img.setOpacity(50);

但这设置了整个位图的alpha,这不是我想要的。我想要一种基于黑白源设置图像alpha的高级方法。

1 个答案:

答案 0 :(得分:0)

你想要Bitmap.setPixel。例如,假设您的位图大小相同:

Bitmap a,b;//initialized - a is the b&w image, b is the normal image

for (int x = 0; x < a.width(); x++)
{
    for (int y = 0; y < a.height(); y++)
    {
        int color = b.getPixel(x, y);
        int red = (color >> 16) & 0xFF;
        int green = (color >> 8) & 0xFF;
        int blue = (color >> 0) & 0xFF;
        if (a.getPixel(x, y) == Color.WHITE)
            b.setPixel(x, y, Color.argb(0.5, red, green, blue));//alpha = 0.5
        else
            b.setPixel(x, y, Color.argb(1, red, green, blue));//alpha = 1
    }
}