用Java读取JPEG

时间:2012-07-19 01:44:52

标签: java jpeg javax.imageio

我正在尝试将JPEG格式化为BufferedImage以显示在JPanel上。但是,javax.imageio.ImageIO.read()似乎对它处理的JPEG非常挑剔,经常抛出IIOException。几乎任何你想要命名的图像阅读器都可以使用相同的JPEG格式。

我看过Apache的SanselanJAI。但是Sanselan无法处理JPEG并且JAI不适用于64位Windows平台,并且似乎没有维护(最后一次更新是在2006年)。之前的answer on StackOverflow建议com.sun.image.codec.jpeg.JPEGCodec,但在Java 5中已弃用,并且已在7中消失。

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

1 个答案:

答案 0 :(得分:1)

已知ToolkitcreateImage等传统getImage方法比ImageIO更宽松。

Werner Randelshofer还用ImageIO写了Service Provider来阅读CMYK JPEG。

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

Reading JPEGs with CMYK profile可能是一本有趣的读物。