Java - 读取图像(IIOException:无法创建ImageInputStream)

时间:2013-03-05 18:01:47

标签: java inputstream javax.imageio

我正在使用数据驱动设计编写一个简单的游戏,其中我在图像中读取游戏的各种元素。因此我编写了一个解析器来读入文件,确认它们是可接受的图像格式,并使用这些文件创建一个新的Sprite(我写的类)。

我使用ImageIO.read()读取文件,如下例所示。

toAdd = new Sprite(ImageIO.read(targetFile));

异常的堆栈跟踪如下:

javax.imageio.IIOException: Can't create an ImageInputStream!
    at javax.imageio.ImageIO.read(ImageIO.java:1280)
    at edu.moravian.utilities.dataParsers.GraphicsDataParser.readInSprites(GraphicsDataParser.java:53)

我不知道造成这种情况的原因。该应用程序不是多线程的,图像位于正确的目录中并确认存在,并且我具有访问图像所需的权限。

我可能会遗失什么?

1 个答案:

答案 0 :(得分:0)

一个可能的原因可能是您正在阅读使用CMYK颜色模型的jpeg。默认情况下,ImageIO不支持这些。

虽然有可能添加该功能。例如,看看这个答案:https://stackoverflow.com/a/16149142/6276704