2014-12-03 149 views
0
BufferedImage image = ImageIO.read(new File(img path)); 

int width = image.getWidth(); 
int height = image.getHeight(); 
int[][] result = new int[height][width]; 

for (int row = 0; row < height; row++) { 
    for (int col = 0; col < width; col++) { 
    result[row][col] = image.getRGB(row, col); 
    } 
} 

,這是例外,我得到:異常線程「main」 java.lang.ArrayIndexOutOfBoundsException:座標出界

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds! 
at sun.awt.image.ByteInterleavedRaster.getDataElements(ByteInterleavedRaster.java:301) 
at java.awt.image.BufferedImage.getRGB(BufferedImage.java:871) 
at PlantExtraction.main(PlantExtraction.java:46) 

如何刪除這些例外?

+2

在調試器中運行,所以你可以看到哪個索引當拋出異常時超出界限。我的猜測是行和列是相反的 - 行不是「Y」而列是「X」? – Gus 2014-12-03 05:39:07

+0

恕我直言,這個問題是在image.getRGB(行,列)。查看行是否與高度有關,列與寬度有關。確認你可以限制行寬和高度。 – learningloop 2014-12-03 05:59:18

回答

相關問題