在java中读取和存储.bmp文件

时间:2012-10-28 15:29:19

标签: java bitmap file-io

我正在尝试读取名为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);
}

2 个答案:

答案 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文件中,则必须执行此操作。