当前位置: 首页 > 面试题库 >

ImageIO.read返回NULL,没有错误

席兴平
2023-03-14
问题内容

以下代码似乎不起作用,即使该文件看起来很好也是如此。

    images = new BufferedImage[32];
    FileInputStream fis = null;
    for (int i = 0; i < 32; i++) {
        File file = new File("tiles\\"+i+".bmp");
        if (!file.exists()){
            System.out.println("File  "+i+" failed");
        }
        try { 
            fis = new FileInputStream(file); 
        } catch (FileNotFoundException e) { 
            System.err.println(e + "" + i); 
        }
        try { 
            images[i] = ImageIO.read(fis); 
        } catch (IOException e) { 
            System.err.println(e + "" + i); 
        }
        if (images[i] == null) {
            System.out.println("Image "+i+" failed");
        }
    }

在此先感谢您的帮助。

编辑:结果是我试图去Graphics.drawImage(images [0]);,它给了我一个空指针异常。这段代码可以很好地完成。

编辑:更改按建议移动if(!file.exists()),并将文件包装在输入流中。


问题答案:

ImageIO.read(file); 如果找不到注册的 ImageReader, 将返回null 。请检查您是否已注册任何
ImageReader

我认为此代码段可以帮助您

File file = new File("bear.jpg"); // I have bear.jpg in my working directory  
    FileInputStream fis = new FileInputStream(file);  
    BufferedImage image = ImageIO.read(fis); //reading the image file

您只需要将文件包装到 FileInputStream中 ,然后将其传递给 read()



 类似资料:
  • 问题内容: 线 失败于 我正在使用Eclipse,并且在bin文件夹下的导航视图中有文件gate_and.png,表明该文件位于构建路径中。 在包浏览器视图中,我有 和 我右键单击项目文件夹>构建路径>链接源以将images文件夹添加为源,再次执行此操作会提供一条确认消息,指出源中已存在图像。 我还尝试过将gate_and.png更改为images / gate_and.png和/images/g

  • 问题内容: 我有以下代码: 那应该从给定的URL返回图像。 我测试了以下两个随机选择的URL: https://www.google.co.ma/images/srpr/logo4w.png http://www.earthtimes.org/newsimage/osteoderms-storing-minerals-helped-huge-dinosaurs-survive_3011.jpg 第

  • 加载样式表,并在用户单击按钮时将其应用于场景 调用getScene()返回null。 函数所在的类是场景的控制器和根节点,我使用SceneBuilder 2.0,并将类设置为加载fxml的控制器,它是一个。 问题代码是类中的一个成员函数,标记是这样的,我可以通过设置按钮来调用它。 完整的代码可以在https://github.com/SebastianTroy/FactorioManufactur

  • 我是开发android应用程序的新手 我正在开发一款音乐播放器,希望从音频文件的元数据中获取歌曲名称、艺术家、专辑名称、专辑艺术 我使用了,但当有800首歌曲时,速度会很慢,有些文件返回null,而其他音乐播放器可以检索这些信息。 然后我使用获取歌曲名称、艺术家、专辑名称和媒体商店。音频专辑。外部内容_URI获取专辑艺术。 是否有任何uri可同时获取(歌曲名称、艺术家、专辑名称、专辑艺术) 因为我

  • 我正在实现房间数据库。这是我的POJO类 这是DAO类 在运行我的代码时,我收到以下错误

  • 我有两个活动和两个布局。当我在第一个活动中显示列表时,一切都正常,并在单击时给出列表中项目的编号,但当我尝试在第二个活动中重复相同的内容时,它会告诉我RecycleServiceClickListener侦听器为空。 适配器: 第一项活动: 第二项活动: 错误: 我不明白为什么在第一种情况下,它正常处理单击,而在第二种情况下,它说RecyclerViewClickListener为null