更改位图中的特定颜色,Android

时间:2012-06-05 04:08:07

标签: android paint android-canvas

假设我有3个 BITMAPS ,上面有2种颜色。

  1. 红与白
  2. 蓝白色
  3. 绿色和白色
  4. 现在我想分别用任何颜色改变3幅图像中的红色,蓝色和绿色。例如:黑色。

    我采取什么方法?

    我读到了关于更换颜色的内容,我成功地取代了特定的颜色。 例如:通过指定我想要更改的颜色,我可以单独替换红色,蓝色和绿色。

    但是如何让它变得通用?你能建议采取任何措施吗?

1 个答案:

答案 0 :(得分:3)

您可以在此处使用此方法: Replace black color in bitmap with red 并在if语句中添加更多测试。

int [] allpixels = new int [ myBitmap.getHeight()*myBitmap.getWidth()];

myBitmap.getPixels(pixels, 0, myBitmap.getWidth(), 0, 0,myBitmap.getWidth(),myBitmap.getHeight());

for(int i =0; i<myBitmap.getHeight()*myBitmap.getWidth();i++){

    if( allpixels[i] == Color.RED || allpixels[i] == Color.BLUE || allpixels[i] == Color.GREEN)
         allpixels[i] = Color.BLACK;
}

myBitmap.setPixels(allpixels, 0, myBitmap.getWidth(), 0, 0, myBitmap.getWidth(), myBitmap.getHeight());

然后你可以将它变成一个以颜色数组作为参数的函数。