【发布时间】:2013-10-27 03:30:38
【问题描述】:
我在使用 Java 应用程序时遇到问题,尤其是从我计算机中的某个位置加载图像时。
在this post 之后,我使用BufferedImage 和InputFileStream 在我的计算机上加载图像。首先,我将图像 (pic2.jpg) 放入源代码中,并且可以正常工作。但是,如果我把图像放到另一个地方(比如说C:\\ImageTest\pic2.jpg),Java IDE 会显示一个IllegalArgumentException
return ImageIO.read(in);
代码如下:
public class MiddlePanel extends JPanel {
private BufferedImage img;
public MiddlePanel(int width) {
//img = getImage("pic2.jpg");
img = getImage("C:\\ImageTest\\pic2.jpg");
this.setPreferredSize(new Dimension(800,460));
}
public void paintComponent(Graphics g) {
// ...
}
private BufferedImage getImage(String filename) {
// This time, you can use an InputStream to load
try {
// Grab the InputStream for the image.
InputStream in = getClass().getResourceAsStream(filename);
// Then read it.
return ImageIO.read(in);
} catch (IOException e) {
System.out.println("The image was not loaded.");
//System.exit(1);
}
return null;
}
}
【问题讨论】:
-
请看看这个answer,希望对你有帮助:-)
标签: java image embedded-resource bufferedimage