0

使用以下代码上传图片。

ByteArrayOutputStream baos = new ByteArrayOutputStream();
BufferedImage img = ImageIO.read(new File("abc.tiff"));
ImageIO.write(img, "tiff", baos);
img.flush();  
img=null;

byte[] bytes2 = baos.toByteArray();
if(baos != null) {
    baos.flush();
    baos.close();
}

System.out.println("bytes2 size::::" + bytes2.length);

我的原始 tiff 图像大小为 119 kb,当我打印图像字节时,我得到 800974 字节长度。

为什么图像大小会增加?可能是什么问题

4

2 回答 2

0

TIFF 格式与大多数图像格式一样,支持多种图像模式和压缩策略。 ImageIO.write()在优化方面可能不是很聪明,或者可能需要一些调整。参见例如这里

于 2013-05-07T14:17:09.207 回答
0

显然,您的abc.tiff文件已存档(TIFF格式具有存档版本),同时img包含未存档的未打包数据。这就是为什么您的输出是782kb 而不是119.

于 2013-05-07T12:18:55.853 回答