如何创建像素值数组?

时间:2013-10-20 22:06:55

标签: java arrays image rgb pixel

我正在尝试创建一个双脚本数组,其中包含java中图像的所有RGB值。之后,我想看看像素是黑色还是白色。但是,下面的代码给了我一个ArrayIndexOutofBounds错误,我不知道为什么。任何帮助将不胜感激!

int[][] imageArr = new int[image.getTileHeight()+1][image.getTileWidth()+1];
    for (int a=0; a<image.getTileHeight(); a++)
    {
        for (int b=0; b<image.getTileWidth(); b++)
        {
            imageArr[a][b] = image.getRGB(a,b);               
        }
    }

堆栈错误跟踪:

java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds!
    at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:318)
    at java.awt.image.BufferedImage.getRGB(BufferedImage.java:888)
    at image2.main(image2.java:34)

1 个答案:

答案 0 :(得分:0)

如果您想要获取整张图片,那么您需要在循环和数组初始化中使用getHeightgetWidth而不是getTileHeightgetTileWidth。< / p>

这会导致getRBG在尝试获取ArrayIndexOutOfBounds

中嵌入Raster数据的图像时抛出BufferedImage