5

我正在尝试将 JPEG 转换为 aBufferedImage以显示在JPanel. 然而,javax.imageio.ImageIO.read()它似乎对它处理的 JPEG 非常挑剔,经常抛出IIOException. 几乎所有您想命名的图像阅读器都可以很好地打开相同的 JPEG。

我看过 Apache 的SanselanJAI。但是 Sanselan 不能处理 JPEG,而且 JAI 不适用于 64 位 Windows 平台,而且似乎也没有得到维护(最后一次更新是在 2006 年)。StackOverflow上的先前答案建议 com.sun.image.codec.jpeg.JPEGCodec,但这在 Java 5 中已被弃用,并在 7 中消失。

这些是我唯一的选择吗?真的没有 Java 库能够稳健地将 JPEG 读入BufferedImage.

4

1 回答 1

1

众所周知,诸如createImagegetImage之类的旧版Toolkit方法比.ImageIO

Werner Randelshofer 还编写了一个服务提供程序来读取带有ImageIO.

通过结合这两种方法(尝试所有可能的ImageReader然后回退到Toolkit),您将能够处理合理数量的 JPEG 图像。

阅读带有 CMYK 配置文件的 JPEG可能会很有趣。

于 2012-07-19T03:55:58.247 回答