ImageIO.write改变颜色

时间:2016-05-22 20:59:48

标签: java image javax.imageio

我正在使用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();
}

0 个答案:

没有答案