我有一個JavaBufferedImage。前景是黑色,背景是透明的。我想將圖像重新着色爲紅色。如何更改Java緩衝圖像的顏色
我已閱讀其他人的帖子,並嘗試使用此代碼,但是當我運行它時,我的圖像完全透明。
有沒有人有任何想法?我是Java 2D圖像處理庫的新手。謝謝。
imageIcon= new ImageIcon(getImageURL("/ImagesGun/GunBase.png"));
gunBaseImage= Utilities.toBufferedImage(imageIcon.getImage());
int red = 0x00ff0000;
int green = 0x0000ff00;
int blue = 0x000000ff;
int width = gunBaseImage.getWidth();
int height = gunBaseImage.getHeight();
//Loop through the image and set the color to red
for(int x = 0; x < width; x++){
for(int y = 0; y < height; y++){
long pixel = gunBaseImage.getRGB(x, y);
if(pixel != 0){
red = 0x00ff0000;
gunBaseImage.setRGB(x,y,red);
}
}
}
爲每個像素調用getRGB和setRGB會變得很慢,因爲這些方法試圖進行全色空間轉換。對於圖像處理,最好訪問BufferedImage後面的int數組。 – lbalazscs 2014-11-24 06:54:14