我正在使用Java来保存和读取图片,我需要每个像素都是它保存的颜色,但每当我使用ImageIO.write
时,某些像素都会微微偏离。例如,一个像素可能会从rgb(145, 182, 110)
更改为rgb(141, 184, 114)
。我曾尝试将图片写入JPEG,PNG和BMP,但像素总是略有变化。有没有办法让这件事不发生?
编辑:这是我保存图片的代码。我有想要保存在像素的2D数组中的像素。
BufferedImage b=new BufferedImage(pix.length, pix[0].length, BufferedImage.TYPE_3BYTE_BGR);
String name = JOptionPane
.showInputDialog("What do you want to call the file?");
for(int r=0;r<pix.length;r++){
for(int c=0;c<pix[r].length;c++){
b.setRGB(c, r, new Color(pix[r][c].getRed(),pix[r][c].getGreen(),pix[r][c].getBlue()).getRGB());
}
}
File f1 = new File(f.getAbsolutePath() + "/" + name + ".bmp");
try {
f1.createNewFile();
ImageIO.write(b, "bmp", f1);
} catch (IOException e1) {
e1.printStackTrace();
}