0

我有一个 BufferedImage 实例:(只是一个例子)

BufferedImage image = ImageIO.read(new URL("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png"));

现在,我只知道使用

ImageIO.write(image,"jpg", file); //or ImageIO.write(image,"png", file);

将此 BufferedImage 保存到文件中,但此文件已压缩,不等于原始图像大小。

我可以从 BufferedImage 实例中获取原始图像 ByteArray 或 OutputStream 吗?

4

2 回答 2

2

简而言之:没有。

Java 将图像转换为内部表示并在读取和写入时转换文件。

您最好的选择是读取字节数组(或临时文件)中的文件,从那里创建图像。保存文件时,返回原始字节数组或临时文件。

于 2010-08-24T07:15:10.360 回答
0
public static Image toImage(BufferedImage bufferedImage) { 
    return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource()); 
} 
于 2010-08-24T07:08:49.790 回答