我正在使用数据驱动设计编写一款简单的游戏,其中我读取了游戏的各种元素的图像。因此,我编写了一个解析器来读取文件,确认它们是可接受的图像格式,并使用这些文件创建一个新的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)
我不知道是什么引起的。应用程序不是多线程的,图像在正确的目录中,并且被确认存在,并且我有访问图像所需的权限。
我可能错过了什么?
一个可能的原因可能是您正在阅读使用CMYK颜色模型的jpeg。ImageIO默认不支持这些
有可能添加该功能。例如,看看这个答案:https://stackoverflow.com/a/16149142/6276704