Я использую Java для сохранения и чтения изображений, и мне нужно, чтобы каждый пиксель был именно того цвета, в котором он был сохранен, но всякий раз, когда я использую ImageIO.write
, некоторые пиксели немного отключаются. Например, один пиксель может измениться с rgb(145, 182, 110)
на rgb(141, 184, 114)
. Я пытался записать изображение в JPEG, PNG и BMP, но пиксели всегда немного меняются. Есть ли способ сделать так, чтобы этого не произошло?
Изменить: вот код, в котором я сохраняю изображение. У меня есть пиксели, которые я хочу сохранить в 2D-массиве пикселей, который называется pix.
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();
}
pix
перед сохранением, чтобы узнать, содержит ли он145,182,110
или141,184,114
? - person user253751   schedule 23.05.2016TYPE_3BYTE_BGR
? В этом нет ничего плохого, на самом деле это очень распространено... - person Harald K   schedule 23.05.2016