【问题标题】:How to set the right path to image in java?如何在java中设置正确的图像路径?
【发布时间】:2019-11-01 20:04:25
【问题描述】:

我正在尝试使用 java 中的paint方法加载和绘制它,无论我以何种方式编写路径它总是显示异常

java.lang.IllegalArgumentException: input == null!
    at javax.imageio.ImageIO.read(Unknown Source)

我的图片和班级在同一个文件夹中

这是我正在加载图像的行

    Image img = ImageIO.read(getClass().getResourceAsStream("pepsi.png"));

【问题讨论】:

  • 你检查过这个link
  • 是的,我仍然遇到同样的异常,我尝试了那里编写的所有解决方案
  • 你确定文件和java文件在同一个地方吗?可以在另一个类文件夹中,将其放在与类 this 代码运行相同的文件夹中。
  • 是的,他们在同一个地方

标签: java image drawimage


【解决方案1】:

检查您的输出文件夹...“pepsi.png”(可能区分大小写)必须与您调用的类文件位于同一文件夹中

【讨论】:

  • 它和我提到的在同一个文件夹中
【解决方案2】:

尝试像这样测试它。

如果文件是 java 文件,而我的类在一个名为

的包中
net.ilightwas.MyClass

应该是这样的

Image img = ImageIO.read(getClass().getClassLoader().getResourceAsStream("net/ilightwas/pepsi.png"));

这可能会帮助您找到错误。

【讨论】:

    【解决方案3】:

    看看MKYong's tutorial。它向您展示了将图像放在哪里。 如果要将图像作为“资源”加载,则必须将其放在资源文件夹中。你的项目结构是这样的:

    MyProject
        +--src
            +--main
                +--java
                |    +-com
                |       +--me
                |           +--Main.java
                +--resources
                     +--pepsi.jpg
    

    并在您的 Main 类中执行该 sn-p:

    try {
        Image img= ImageIO.read(Main.class.getClassLoader().getResourceAsStream("pepsi.jpg"));
        System.out.println(img.getWidth(null));  //this is just a test, when it prints out the width of your image, you have the right file loaded 
    } catch (IOException ex) {
        Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-25
      • 2014-07-26
      • 2019-11-25
      • 2023-03-13
      • 2016-04-13
      • 2010-12-30
      相关资源
      最近更新 更多