无法从Java中的同一个包加载图像?

时间:2013-12-20 21:04:18

标签: java javax.imageio

在我的java包中,我有一个名为'prog.ico'的文件。我正在尝试通过以下代码加载此文件:

java.net.URL url = this.getClass().getResource("prog.ico");
java.awt.Image image = ImageIO.read( url );
System.out.println("image: " + image);

这给出了输出:

image: null

我做错了什么? .ico文件与我运行此代码的类存在于同一个包中。

3 个答案:

答案 0 :(得分:2)

似乎不支持.ico图像格式。请参阅this问题,这是解决此问题的答案。

防止链接损坏:此解决方案建议使用Image4J来处理.ico文件。

答案 1 :(得分:1)

我为ImageIO编写了一个插件,增加了对.ICO(MS Windows Icon)和.CUR(MS Windows Cursor)格式的支持。

你可以在这里从GitHub获取它:https://github.com/haraldk/TwelveMonkeys/tree/master/imageio/imageio-ico

在您拥有installed插件之后,您应该能够使用原始帖子中的代码阅读您的图标。

答案 2 :(得分:0)

我认为你必须通过FileInputStream来包装文件

 File file = new File("prog.ico"); 
 FileInputStream fis = new FileInputStream(file);  
 BufferedImage image = ImageIO.read(fis); //reading the image file