我正在尝试将JPEG格式化为BufferedImage
以显示在JPanel
上。但是,javax.imageio.ImageIO.read()
似乎对它处理的JPEG非常挑剔,经常抛出IIOException
。几乎任何你想要命名的图像阅读器都可以使用相同的JPEG格式。
我看过Apache的Sanselan和JAI。但是Sanselan无法处理JPEG并且JAI不适用于64位Windows平台,并且似乎没有维护(最后一次更新是在2006年)。之前的answer on StackOverflow建议com.sun.image.codec.jpeg.JPEGCodec
,但在Java 5中已弃用,并且已在7中消失。
这些是我唯一的选择吗?是否真的没有Java库能够将JPEG强大地读入BufferedImage
?
答案 0 :(得分:1)
已知Toolkit和createImage等传统getImage方法比ImageIO
更宽松。
Werner Randelshofer还用ImageIO
写了Service Provider来阅读CMYK JPEG。
通过结合两种方法(尝试每一种可能的ImageReader
然后回退到Toolkit
),您将能够处理合理数量的JPEG图像。
Reading JPEGs with CMYK profile可能是一本有趣的读物。