我可以从BufferedImage获得原始图像吗?

时间:2010-08-24 06:57:28

标签: java java-io

我有一个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保存到文件,但此文件为ZIP,不等于原始图像大小。

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

2 个答案:

答案 0 :(得分:2)

简而言之:不。

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

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

答案 1 :(得分:0)

public static Image toImage(BufferedImage bufferedImage) { 
    return Toolkit.getDefaultToolkit().createImage(bufferedImage.getSource()); 
}