首页 > 解决方案 > 从 PNG 到 JPG 的缩略图转换会导致全白图像

问题描述

对于许多图像,此代码可以很好地将 PNG 图像转换为 JPG:

Thumbnails.of(pngIn)
        .outputFormat("jpg")
        .scale(1.0)
        .toFile(jpgOut);

但是对于这个特定的图像: 在此处输入图像描述

该代码会生成一个全白的 JPG 图像。如果有人能指出我在 Thumbnailator 中做事的正确方式,我将不胜感激。干杯!

编辑:好吧,图像上传/下载过程中的某些东西使附加图像的工作正常!(下载的图像是 50K 而原始图像是 41K,所以很明显那里有一些奇怪的地方。)但我保证原始的 PNG 真的不起作用。

编辑 2:Google 图片链接可用于下载页面右侧的 920x900 PNGWing 图片 (41K)。

标签: pngjpegthumbnails

解决方案


上述语法似乎对于将 PNG 转换为 JPG 是正确的。问题是当引用的图像被读入一个 BufferedImage 对象时,图像的类型是 BufferedImage.TYPE_BYTE_BINARY。虽然此类图像可以是 1、2 或 4 位图像,但 Thumbnailator 不能正确处理 2 位或 4 位图像,本质上假设图像是 1 位图像。

简而言之:语法是正确的,但似乎存在阻碍某些 PNG 文件成功处理的 Thumbnailator 错误。


推荐阅读