好的我有一张我想读的影像。问题是Image.read(文件)返回NULL。
File file = new File("C:\\images\\image1.jpg");
if(file.exists()){
System.out.println("Image file exists.");
BufferedImage originalImage = ImageIO.read(file);
}
因此图像存在但ImageIO.read(file)返回NULL。没有抛出的错误没有!怎么回事?
这是我到目前为止所尝试的:
有人可以帮忙吗?我是新手,不知道如何解决这个问题。
好的,我只是想通了ImageIO.getImageReaders(stream)返回一个空的Iterator。这意味着它找不到合适的读卡器?我怎么读这个图像?
答案 0 :(得分:5)
返回
BufferedImage
作为结果 使用。解码提供的文件ImageReader
自动选择 从目前注册的人中。File
被包裹在一个ImageInputStream
。如果没有注册ImageReader
声称可以 读取结果流,null
是 返回。
尝试创建ImageInputStream
,然后将其传递到ImageIO.read()
方法,而不是自己发送文件。
答案 1 :(得分:5)
好的,因为我换了笔记本电脑,我看着我的旧笔记本电脑,在jre / ext / lib中找到了这个JAR jai-imageio.jar(我知道不好主意)。我将它移动到我的项目/ lib并且它工作了! 我想这个jai-imageio.jar包含额外的图像阅读器。
答案 2 :(得分:3)
太棒了,我遇到了同样的问题,它在eclipse中支持24种图像格式,但在maven的命令提示符下仅支持12种图像格式。一旦我将jai_imageio.jar放置在maven的测试路径中,maven也开始支持24种图像格式。