2012-06-05 34 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()); 

然後,你可以把它變成一個函數,它將一個顏色數組作爲參數。