Итерация по 2d массиву

#java

Вопрос:

Привет, я хочу перебрать каждые 12 image пикселей. Если пиксель черный, я хочу поставить 1 в свой массив, иначе 0.

 int width = image.getWidth();
    int height = image.getHeight();

  
    int[][] pixels = new int[height / 12][width / 12];

    int counterX = 1;
    int counterY = 1;

    for (int i = 0; i < width / 12; i  ) {
        for (int j = 0; j < height / 12; j  ) {

            if (counterX == 1 amp;amp; counterY == 1) {
                int rgb = image.getRGB(counterX, counterY);
                String s = Integer.toHexString(rgb);
                if (s.equals("ff000000")) {
                    pixels[i][j] = 1;
                } else {
                    pixels[i][j] = 0;
                }
                counterX  = 12;

            } else {

                int rgb = image.getRGB(counterX, counterY);
                String s = Integer.toHexString(rgb);
                if (s.equals("ff000000")) {
                    pixels[i][j] = 1;
                } else {
                    pixels[i][j] = 0;
                }
                counterX  = 12;


                if (counterX > width) {
                    counterX = 1;
                    counterY  = 12;
                    if (counterY > height) {
                        counterY = height;
                    }
                }
            }
        }
    }
    return pixels;
 

У меня индекс 41 выходит за рамки длины 41, это происходит в этой строке pixels[i][j] = 0;
Что-то не так с X.

Комментарии:

1. Следует counterX ли и counterY начинать с 1? Я предлагаю вам распечатать значения counterX и counterY и посмотреть, находятся ли они в пределах getRGB() , которые могут превышать размер изображения. Размещение инструкций печати в других ключевых точках также может помочь и обычно является первым методом отладки, используемым в подобных случаях.

2. Вы также можете показать фактическое исключение и код вокруг этого номера строки.

3. « для (int h = 0; h длина; h ) { для (int w = 0; w Тьфу, ты можешь писать встроенный код только в комментариях??