我正在尝试读取名为circle1.bmp
的.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);
}
答案 0 :(得分:0)
你应该尝试像
这样的东西image = ImageIO.read(getClass().getResourceAsStream("path/to/your/file.bmp"));
答案 1 :(得分:0)
可能相对于用户目录,图像的文件路径不正确。要找出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文件中,则必须执行此操作。