我有一张图片(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)
。谢谢大家的帮助!
答案 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è将成为没有绿色通道的图像。