我在使用 ImageIO.read(File file) 读取这个 JPEG 文件时遇到问题 - 它会引发异常并显示“不支持的图像类型”消息。
我尝试过其他 JPEG 图像,它们似乎工作正常。
我能够发现的唯一区别是该文件似乎包含一个缩略图 - 是否已知会导致 ImageIO.read() 出现问题?
编辑:
添加了结果图像:
最佳答案
旧帖,但供将来引用:
受此问题和此处找到的链接的启发,我为 ImageIO 编写了一个 JPEGImageReader 插件,该插件支持 CMYK 颜色模型(均具有原始颜色模型,或在读取时隐式转换为 RGB)。与此处提到的其他解决方案相比,阅读器还使用嵌入在 JPEG 流中的 ICC 配置文件进行适当的颜色转换。
它是纯 Java,不需要 JAI。源代码和二进制发行版可在 github.com/haraldk/TwelveMonkeys 免费获得, 并且受 BSD 风格的许可所涵盖。
安装后,它允许您使用 ImageIO.read(...)
读取 CMYK JPEG,如下所示:
File cmykJPEGFile = new File(/*path*/);
BufferedImage image = ImageIO.read(cmykJPEGFile);
即:在大多数情况下,没有必要修改您的代码。
关于java - 无法使用 ImageIO.read(文件文件)读取 JPEG 图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2408613/