2

getElem() が特定の値以上であるインデックスの配列を返したい。

これは私の機能です:

public static int []findIndex(BufferedImage image,int value)
{
    DataBuffer b = image.getRaster().getDataBuffer();
     int array[] = new int[600];
    for(int i=0;i<76400;i++)
    {
        if(b.getElem(i)>=value)
            array[i]=i;
    }
    return array;
}

しかし、私はエラーがあります

"Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 27001
    at arraytest.imageMan.findIndex(imageMan.java:139)
    at arraytest.imageMan.main(imageMan.java:183)"
4

4 に答える 4

2

これは私が見つけた解決策です..

それが一番だと思います..

 public static int[] findIndex(BufferedImage image, int value) {
    DataBuffer b = image.getRaster().getDataBuffer();
    int array[] = new int[600];
    int j = 0;
    for (int i = 0; i < b.getSize(); i++) {
        if (b.getElem(i) >= value) {
            if (j < 600) {
                array[j] = i;
                j++;
            }
        }
    }
    return array;
}
于 2013-05-13T18:34:26.457 に答える