2012-06-05 30 views
0

假设我有3 BITMAPS其上有两种颜色。更改位图中的特定颜色,Android

  1. 红色和白色
  2. 蓝色和白色
  3. 绿色和白色

现在我想用任何颜色分别更改3个图像只有红色,蓝色和绿色。例如:黑色。

我该采取什么方法?

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

但是,如何使其具有通用性?你能提出任何方法吗?

回答

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()); 

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