Получить 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