2
我在另外三個BufferedImage中分離了我的圖像的顏色,當我將它們放在一起時,我只有藍色。 當我測試紅色圖像時,確實得到了紅色,我發現它也是藍色,它與綠色完全一樣。 這是我的代碼。爲什麼我的BufferedImage選擇了錯誤的顏色?
public void modifyImage(BufferedImage image) {
BufferedImage green = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
BufferedImage blue = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
BufferedImage red = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_INT_RGB);
for(int y= 0; y < image.getHeight(); y ++){
for(int x = 0; x < image.getWidth(); x++){
red.setRGB(x, y, new Color(image.getRGB(x, y)).getRed());
green.setRGB(x, y, new Color(image.getRGB(x, y)).getGreen());
blue.setRGB(x, y, new Color(image.getRGB(x, y)).getBlue());
}
}
BufferedImage finalImage = new BufferedImage(red.getWidth(), red.getHeight(), BufferedImage.TYPE_INT_RGB);
for(int y= 0; y < image.getHeight(); y ++){
for(int x = 0; x < image.getWidth(); x++){
finalImage.setRGB(x, y, new Color(new Color(red.getRGB(x, y)).getRed(),new Color(green.getRGB(x, y)).getGreen(),new Color(blue.getRGB(x, y)).getBlue()).getRGB());
}
}
this.image = green;
}
那麼我的錯誤在哪裏?我錯過了什麼?