使用以下代码上传图片。
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字节的长度。
为什么图像尺寸会增加?什么可能是问题
答案 0 :(得分:0)
显然,您的abc.tiff
文件已归档(TIFF
格式具有归档版本),而img
包含未归档的解压缩数据。这就是为什么您的输出为782
kb而不是119
。
答案 1 :(得分:0)
TIFF格式,与大多数图像格式一样,支持大量图像模式和压缩策略。
ImageIO.write()
在优化方面可能不是很聪明,或者可能需要进行一些调整。参见例如here。