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