使用 thumbnailator 从 JPG 转换为 PNG 时,图像大小增加了两倍

Image size increased twice when convert from JPG to PNG using thumbnailator

我正在使用 Thumbnailator 压缩我的应用程序中的图像。当我尝试将 JPG 图像转换为 PNG 时,一切正常。在此过程中,压缩后图像的大小会增加一倍。以下代码用于转换图像。

File a=new File("C:\Users\muthu\Downloads\SampleJPGImage_5mbmb.jpg");
Thumbnails.of(a).scale(1).outputQuality(0.5).toFile("C:\Users\muthu\Downloads\SampleJPGImage_5mbmb1.png");

使用纯 java 也做同样的事情,代码如下

BufferedImage bufferedImage = ImageIO.read(new File("C:\Users\muthu\Downloads\SampleJPGImage_5mbmb.jpg"));
ImageIO.write(bufferedImage, "png", new File("C:\Users\muthu\Downloads\javaPngimage.png"));

例如:5MB 图像文件被转换为 32MB 文件。我不应该去调整大小来压缩。我坚持这个

JPEG 和 PNG 都是压缩图像格式。

JPEG 使用频率变换和量化来压缩像素。它可以是有损或无损压缩格式。

PNG 是一种具有不同压缩机制的无损压缩格式。我敢说 "quality" 参数实际上根本没有改变图像。

最大的图像文件类型是 BMP (.bmp),即每个像素 3 个字节 (RGB) 加上一个 header。在决定图像文件是否为 "big" 时,记住这个大小是值得的。 JPEG压缩率还不错。

听起来你的图像有很多细节可以在频域 (JPEG) 中很好地压缩,但在 PNG 中压缩得很差。

最简单的解决方案:JPEG 格式的缩略图。如果您需要使用 PNG,并且正在调整图像大小,我建议先调整 JPEG 大小,然后再转换为 PNG。