0
我試圖更改圖像的一個像素的rgb值,然後將其寫回到新文件中,但在讀取文件時遇到問題我以前改變了它的價值,它仍然具有舊的價值。值不會隨Java中的ImageIO.write()變化
這裏是我的代碼:
BufferedImage image = ImageIO.read(new File("input.jpg"));
System.out.println(image.getRGB(0, 0) & 0xff);
image.setRGB(0, 0, -2);
System.out.println(image.getRGB(0, 0) & 0xff);
ImageIO.write(image, "jpg", new File("output.jpg"));
BufferedImage output = ImageIO.read(new File("output.jpg"));
System.out.println(output.getRGB(0, 0) & 0xff);
我的代碼的輸出是:
255
254
255
什麼它應該是當我改變了RGB值:
255
254
254
你要保存爲JPEG格式,這是一種有損格式的圖像。它不能保證所有像素的值都完全保留。使用非有損格式,例如PNG。 – Jesper
@Jesper非常感謝你,它的工作:) – sasorihuriko