Получить RGB из BufferedImage

Кто-нибудь может объяснить, как получить массив значений rgb из BufferedImage?

У меня есть изображение в оттенках серого в BufferedImage, и мне нужно извлечь массив значений от 0 до 255, описывающих изображение.
Я знаю, что BufferedImage правильный, потому что я могу сохранить его в PNG. Однако, если я использую int[] dataBuffInt = ((DataBufferInt) heightMap.getDataBuffer()).getData();я получаю кучу огромных отрицательных чисел.

Я искал какое-то время и видел некоторые ссылки на сдвиг некоторых значений ( post), но на самом деле не понимаю, о чем они говорят.

По сути, я хочу перейти от BufferedImage к массиву значений RBG от 0 до 255.
Я не уверен, что правильно объяснил, пожалуйста, попросите более подробную информацию.

Редактировать:
@Garbage Спасибо за совет. Я попробовал int[] dataBuffInt = heightMap.getRGB(0, 0, heightMap.getWidth(), heightMap.getHeight(), null, 0, heightMap.getWidth()); Но получить тот же результат.
@Greg Kopff Результат равен 2, и он был установлен на TYPE_INT_ARGB

18
задан Community 23 May 2017 в 12:32
поделиться