3

という .bmp ファイルを読み込もうとしていますcircle1.bmp。次のファイルにインポートしたパッケージにあります。

これまでのところ、次のコードがありますが、次のコードを実行すると次のようになります。

javax.imageio.llOException: 入力ファイルを読み込めません!

public void setUp() throws IOException
{
    BufferedImage image = ImageIO.read(new File("circle1.bmp"));
    byte[][] greenInputData = new byte[30][40];

    for (int x = 0; x < inputData.length; x++)
    {
        for (int y = 0; y < inputData[x].length; y++)
        {
            int color = image.getRGB(x, y);
            //alpha[x][y] = (byte)(color>>24);
            //red[x][y] = (byte)(color>>16);
            greenInputData[x][y] = (byte)(color>>8);
            //blue[x][y] = (byte)(color);
        }
    }
    this.inputData = greenInputData;

    System.out.println(this.inputData);
}
4

2 に答える 2

-1

イメージのファイル パスがユーザー ディレクトリに対して正しくない可能性があります。Java がどこを見始めているか、ユーザー ディレクトリがどこにあるかを調べるには、次のようなコード行をプログラムのどこかに配置します。

System.out.println(System.getProperty("user.dir"));

おそらく、ファイルとしてではなく、リソースから取得した InputStream として画像を取得する方がよいでしょう。例えば、

image = ImageIO.read(getClass().getResourceAsStream("circle1.bmp")); //prefered

また

image = ImageIO.read(getClass().getResource("circle1.bmp"));

これは、クラス ファイルの場所に相対的に指定されたパスでイメージを探します。実際、イメージが jar ファイルにある場合は、これを行う必要があります。

于 2012-10-28T21:38:24.147 に答える
-1

次のようなものを試してみてください

image = ImageIO.read(getClass().getResourceAsStream("path/to/your/file.bmp"));
于 2012-10-28T15:32:46.033 に答える