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

完全なイメージを取得したい場合は、ループと配列の初期化でgetHeightandgetWidthではなくgetTileHeightandを使用する必要があります。getTileWidth

これらは、あなたの中に埋め込まれているデータのイメージを取得しようとして、getRBGをスローさせています。ArrayIndexOutOfBoundsRasterBufferedImage

于 2013-10-20T22:38:29.487 に答える