0

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

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

现在我只想用任何颜色分别更改 3 幅图像中的红色、蓝色和绿色。例如:黑色。

我采取什么方法?

我读到了关于更换颜色的文章,我成功地更换了特定的颜色。例如:我可以通过指定要更改的颜色来分别替换 red 、 blue 和 green 。

但是我如何使它通用?你能建议任何方法吗?

4

1 回答 1

3

您可以在此处使用该方法: 将位图中的黑色替换为红色 ,然后在 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());

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

于 2013-06-03T17:37:49.833 回答