0

我正在尝试创建一个双脚本数组,其中包含 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)
4

1 回答 1

0

如果您想获得完整的图像,那么您需要在循环和数组初始化中使用getHeightgetWidth不是。getTileHeightgetTileWidth

这些导致当它试图获取嵌入在您的数据中的数据图像时getRBG抛出ArrayIndexOutOfBoundsRasterBufferedImage

于 2013-10-20T22:38:29.487 回答