0

実行中の jar 内にある画像にアクセスしようとしています。

これが私のコードです:

Image image = Toolkit.getDefaultToolkit().getImage(
            getClass().getResource("/res/sprites/"));

上記のコードはまったく問題なく動作します。

私が抱えている問題は、BufferedImageオブジェクトで使用される読み取り可能な文字列に変換することです。

これが私のコードです:(pathRelativeToThisは文字列です)

Image path = Toolkit.getDefaultToolkit().getImage(
            getClass().getResource("/res/sprites/" + pathRelativeToThis));
    String image = "file://" + path.toString();

    URL url = new URL(image);
    BufferedImage img = ImageIO.read(url);

これは機能せずjavax.imageio.IIOException: Can't get input stream from URL!、エラーとして表示されます。

これを行う正しい方法は何ですか?

4

2 に答える 2

2

次のようにして、ストリームを直接操作できます。

InputStream is = getClass().getResourceAsStream("/res/sprites/" + pathRelativeToThis);
BufferedImage img = ImageIO.read(is);
is.close();

また、リソース URL を ImageIO に直接渡そうとしましたか?

URL url = getClass().getResource("/res/sprites/" + pathRelativeToThis)
BufferedImage img = ImageIO.read(url);
于 2013-05-20T16:55:37.010 に答える
1

パスを削除して、これを試してみてください

String image = "file://" + getClass().getResource("/res/sprites/" + pathRelativeToThis);
URL url = new URL(image);
BufferedImage img = ImageIO.read(url);
于 2013-05-20T16:55:47.437 に答える