使用ImageIO.read时出现问题

时间:2010-10-28 22:32:42

标签: java image swing image-processing applet

好的我有一张我想读的影像。问题是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。没有抛出的错误没有!怎么回事?

这是我到目前为止所尝试的:

  1. 好的我的环境是Windows 7.我 用其中一张图片测试过 随Windows而来 阅读图片。
  2. image1.jpg是由。创建的 另一个系统。现在确定什么方法 他们正在使用。
  3. 我尝试将图片转换为 这里建议使用RGB link text 但它失败了“不是JPEG文件:以0x4d 0x4d开头”。
  4. 图片扩展名是.jpg,但是 windows说它是JPEG类型?这个 令人困惑。
  5. 有人可以帮忙吗?我是新手,不知道如何解决这个问题。

    好的,我只是想通了ImageIO.getImageReaders(stream)返回一个空的Iterator。这意味着它找不到合适的读卡器?我怎么读这个图像?

3 个答案:

答案 0 :(得分:5)

来自ImageIO.read()

的Javadocs
  

返回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种图像格式。