Java -压缩图像大小大于原始图像(BufferedImage)

omhiaaxx  于 2023-02-07  发布在  Java
关注(0)|答案(1)|浏览(362)

我试图压缩一张图像上传到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
我尝试更改压缩质量,但似乎不起作用,并且在某些情况下会发生此问题,但不是所有情况

zaq34kh6

zaq34kh61#

jpeg图像已经被压缩了。“压缩”一个已经被压缩的文件每次都会使它变大一点(头数据)。
另一方面,文本文件将变得小得多。

相关问题