【问题标题】:Image from relative package来自相关包的图像
【发布时间】:2013-03-03 09:10:28
【问题描述】:

我正在使用 java 小程序制作一个简单的游戏。我想将缓冲图像添加到项目中。

我创建了一个名为“resources.images.sprites”的包,并将图片放入其中。

如何访问图像?

我尝试过使用相对路径,但是“.”从垃圾箱外开始,所以如果我将游戏放在网站上,我将无法访问它。

有什么想法吗?

这是我用于测试的主要代码...

package resources;

import java.io.File;
import java.util.HashMap;

import entities.Sprite;

public class ImageLibrary {

    private static final File sprite_path = new File(".");
    private static File[] sprite_files = sprite_path.listFiles();

    //private static HashMap<String,Sprite> sprite_map = new HashMap<String,Sprite>();

    public static void main(String[] args){
        System.out.println(sprite_files[0]); // To check the folder it's in...
    }

}

编辑: 我接受了答案,然后意识到我可以在 URL 对象上使用getPath 方法来获得我想要实现的目标。

【问题讨论】:

  • 从来没有将它用于图像,或者用于存储在你拥有它的地方的东西,但我相信你正在寻找 getClass().getResource("Filename") 或 getClass().getResourceAsStream("Filename ")

标签: java image path relative-path


【解决方案1】:

使用ClassLoader。

Classloader cl = ImageLibrary.class.getClassLoader();
URL imageUrl = cl.getResource("resources/images/sprites/MyImage.png");

一旦您为图片添加了URL,您可以根据需要将其转换为InputStream。

InputStream imageStream = imageUrl.openStream();

【讨论】:

  • 如果我想获取 sprites 文件夹中的所有文件怎么办?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2022-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多