我有一个带有数据 {0; 的 bufferedImage 图像 24; 40; 0; 12; 28; 11; 37;....} 我把它保存到一个带有代码的文件中:
File file = new File(filename);
BufferedImage image = ImageIO.read(file);
String ext = "jpg";
try
{
file.delete();
ImageIO.write(image,ext,file);
return true;
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,
"Image could not be saved!","Error",JOptionPane.ERROR_MESSAGE);
return false;
}
但是当我读到它时,数据已经改变了。imgBytes = {2; 25; 41; 0; 13; 29; 12; 35; ...}
你能帮我把数据写成jpg,数据没有改变。
非常感谢!
代码读取
private void read()
{
img = ImageIO.read(file);
BufferedImage image = copyToBuffer(img);
imgBytes = getImageBytes(image);
}
private BufferedImage copyToBuffer(BufferedImage image)
{
BufferedImage newImage = new BufferedImage(image.getWidth(), image.getHeight(), BufferedImage.TYPE_3BYTE_BGR);
Graphics2D graphics = newImage.createGraphics();
graphics.drawRenderedImage(image, null);
graphics.dispose();
return newImage;
}
private byte[] getImageBytes(BufferedImage image)
{
WritableRaster raster = image.getRaster();
DataBufferByte buffer = (DataBufferByte)raster.getDataBuffer();
return buffer.getData();
}