我试图压缩一张图像上传到S3 Bucket,但图像压缩后,压缩图像的大小比原来的大。从227KB-〉236KB谁能给我解释一下为什么会发生这种情况?
下面是我的代码:
BufferedImage bufferedImage = ImageIO.read(photoFile);
File compressedImageFile = new File("compressed_image.jpeg");
OutputStream outputStream = new FileOutputStream(compressedImageFile);
Iterator<ImageWriter> writers = ImageIO.getImageWritersByFormatName("jpeg");
ImageWriter imageWriter = writers.next();
ImageOutputStream imageOutputStream = ImageIO.createImageOutputStream(outputStream);
imageWriter.setOutput(imageOutputStream);
ImageWriteParam imageWriteParam = imageWriter.getDefaultWriteParam();
if (imageWriteParam.canWriteCompressed()) {
imageWriteParam.setCompressionMode(ImageWriteParam.MODE_EXPLICIT);
imageWriteParam.setCompressionQuality(0.5f);
}
imageWriter.write(null, new IIOImage(bufferedImage, null, null), imageWriteParam);
log.info("Close stream");
outputStream.close();
imageOutputStream.close();
imageWriter.dispose();
这是我的照片:个-227 KB个-236 KB
我尝试更改压缩质量,但似乎不起作用,并且在某些情况下会发生此问题,但不是所有情况
1条答案
按热度按时间zaq34kh61#
jpeg图像已经被压缩了。“压缩”一个已经被压缩的文件每次都会使它变大一点(头数据)。
另一方面,文本文件将变得小得多。