Сохранение значений цвета каждого пикселя в 2D массив

#java #image-processing #multidimensional-array #rgb #pixel

#java #обработка изображений #многомерный массив #rgb #пиксель

Вопрос:

Есть ли способ сохранить цвет пикселя в строке и столбце изображения в 2D-массиве.

В настоящее время у меня есть это

  for (int i = 0; i < h; i  ) {
        for (int j = 0; j < w; j  ) {
            int c = image1.getRGB(i, j);
     }
    }
  

Но то, что я хочу сделать, это чтобы c было похоже на c [I] [j], но getRGB не работает с массивами.

Ответ №1:

Уверен, что это работает.

 int[][] c = new int[w][h]

 for (int i = 0; i < w; i  ) {
        for (int j = 0; j < h; j  ) {
            c[i][j] = image1.getRGB(i, j);
     }
 }
  

Также не забудьте переключить высоту и ширину. Ширина должна быть внешним циклом, а высота — внутренним.

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

1. @Sherin из документации «Может быть вызвано исключение ArrayOutOfBoundsException, если область не находится в границах. Однако явная проверка границ не гарантируется.» Итак, вы пытаетесь получить доступ к пикселям, которые даже не являются частью изображения

2. При использовании image1.getRGB(i, j); я получаю java.lang.ArrayIndexOutOfBoundsException: Coordinate out of bounds! ошибку, но при использовании image1.getRGB(j, i); ошибки нет. Почему это?