Получить RGB BufferedImage

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

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

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

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

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

Ответы на вопрос(1)

Ваш ответ на вопрос