用Java读取JPEG

Chi*_*chi 5 java jpeg javax.imageio

我正在尝试将JPEG转换为,BufferedImage以显示在上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吗?

Ant*_*oly 1

众所周知,旧版Toolkit方法(例如createImagegetImage)ImageIO.

Werner Randelshofer 还编写了一个服务提供程序来读取 CMYK JPEG ImageIO

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

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