jar文件中的ImageIO

时间:2013-12-24 12:59:24

标签: java image jar javax.imageio

好的,所以我正在尝试为我的介绍屏幕制作一个API用于多个游戏,我花了最后5-6个小时试图找出这个问题。

让我们说我的游戏中引用了API.jar,我试图调用方法getByteArray(),它应该将帧加载为BufferedImage,然后返回byte []数据。尝试加载图像时,我经常得到input == null。

public byte[] getByteArray() throws IOException {
    // Open Image
    String url = "/com/jumpbuttonstudio/api/resources/intro/Frame (" + current_frame + ").jpg";
    System.out.println("Loading: " + url);
    BufferedImage img = ImageIO.read(getClass().getClassLoader().getResourceAsStream(url));

    DataBufferByte data = (DataBufferByte) img.getRaster().getDataBuffer();

    return (data.getData());
}

我真的需要帮助,如果需要,我可以提供更多信息。

上面的代码在API.jar中,所有图像都是如此。

1 个答案:

答案 0 :(得分:2)

如果使用Class.getResourceAsStream(path),则路径必须以/开头(否则它被视为相对于类包的路径)。如果您使用ClassLoader.getResourceAsStream(path),则路径不得以/开头。