2013-10-20 45 views
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) 
+0

代碼看起來確定我嵌入的圖像。 'ArrayIndexOutofBoundsError'是否可能來自'image.getRGB()'? – pburka

+0

我不確定...錯誤狀態:「java.lang.ArrayIndexOutOfBoundsException:協調超出範圍!(在sun.awt.image.ByteInterleavedRaster中) – user1755178

+0

你有完整的堆棧跟蹤嗎?它是否包含'getRGB( )''學習讀堆棧跟蹤是一項基本的Java技巧 – pburka

回答

0

如果你想要得到它的完整的圖像,那麼你需要使用getHeightgetWidth在您的循環和陣列不getTileHeightgetTileWidth初始化。

這些都是導致getRBGArrayIndexOutOfBounds,因爲它試圖讓Raster數據中的BufferedImage

+0

謝謝,但錯誤仍在出現 – user1755178