我編寫了一個java代碼,將黑白圖像的所有紅色值更改爲255,因此輸出將爲紅色圖像。 但它不是紅色,而是輸出更明亮的圖像。 我做錯了什麼?Java,圖像更改爲錯誤的rgb值
File bwgFile = new File("X:/Java/Documents/NetBeansProjects/colour/input/bwg.png");
BufferedImage bwgImage = ImageIO.read(bwgFile);
int width=bwgImage.getWidth();
int height=bwgImage.getHeight();
for(int w=0; w<width; w++){
for(int h=0; h<height; h++){
int pixel = bwgImage.getRGB(w,h);
Color bwg = new Color(pixel);
int c=bwg.getRed();
Color red = new Color(255,c,c);
int cpixel = red.getRGB();
bwgImage.setRGB(w,h,cpixel);
}
}
ImageIO.write(bwgImage, "png", new File("X:/Java/Documents/NetBeansProjects/colour/output/c.png"));
編輯: 我發現了什麼問題,顯然當輸入爲灰度圖像,它會嘗試使輸出灰度圖像,以及從而使其更暗當添加紅色時,藍色和綠色的顏色被去除並變亮。不使用灰度圖像作爲輸入固定它。
原因顏色通道指示顏色的亮度?你仍然有你的綠色和藍色頻道。如果你把它們全部設置爲255,你會變白。 – Neijwiert
我不把他們全部設置爲255,只有紅色。 – ergoforce
如果你看看輸出圖像,你可以看到圖像不是白色的。 (如果您沒有注意,我已經包含了圖像的鏈接。) – ergoforce