Android - 如何在Bitmap上添加颜色?

时间:2013-12-28 20:34:31

标签: java android bitmap

我有一张图片(http://imgur.com/lIfzpWB.png),我是通过Bitmap.decodeFile(path);打开的。 但是我可以用我的位图来获取这张图片(http://imgur.com/GHltevM.png)作为结果? 我想我需要在Bitmap上应用某种颜色的蒙版。我怎么能这样做?

UPD 我使用以下代码来实现我的结果:


image.setImageDrawable(convert(original, 0x7F00FF00));



public BitmapDrawable convert(Bitmap src, int color) {
    BitmapDrawable temp = new BitmapDrawable(src);
    temp.setColorFilter(new LightingColorFilter(0, color));
    return temp;
}

UPD 我的代码工作正常!我刚刚用new LightingColorFilter(0, color)替换了new LightingColorFilter(color, 0)。谢谢大家的帮助!

2 个答案:

答案 0 :(得分:2)

尝试这样的事情。

Bitmap bitmap = Bitmap.decodeFile(path);
Canvas canvas = new Canvas(bitmap);
Paint paint = new Paint();
paint.setColorFilter(new LightingColorFilter(0, 0x005500));
canvas.drawPaint(paint);

这应该可以做你想要的(我还没有尝试过),虽然可能需要调整lightingColorFilter的值以达到你想要达到的效果。

答案 1 :(得分:-1)

您需要删除绿色通道。

您可以将文件作为缓冲图像打开,作为名为`imagè的变量,然后使用以下代码:

    for(int i=0;i<image.getWidth();i++)
     for(int j=0;j<image.getHeight();j++){
        Color c=new Color(image.getRGB(i,j));
         int pixel=c.getRed()<<16|c.getBlue();
         image.setRGB(pixel);
     }

由此产生的`imagè将成为没有绿色通道的图像。