我正在尝试创建一个双脚本数组,其中包含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)
答案 0 :(得分:0)
如果您想要获取整张图片,那么您需要在循环和数组初始化中使用getHeight
和getWidth
而不是getTileHeight
和getTileWidth
。< / p>
这会导致getRBG
在尝试获取ArrayIndexOutOfBounds
Raster
数据的图像时抛出BufferedImage