Стандартные библиотеки Java для работы с библиотеками существуют несколько десятилетий и послужили основой для большинство прочих библиотек, доступных сегодня в других средствах программирования.
Для чтения в память и записи на диск изображений - класс ImageIO для самых разнообразных форматов, существующих для растров.
Далее работает широчайший набор классов, описывающих все возможные варианты хранения глубины цветности, от 1 бита (BINARY) до 32 бит (RGBA), но может и больше, давно не смотрел туда. Почти все варианты хранения цветов одного пиксела (interleaved, bands и т.д.) внутри растра и т.д.
Реально даже встроенные библиотеки Java уже сложны для полного освоения, настолько глубоко и полно там всё продумано и абстрагировано. Начать можно
отсюда.
Вообще документации про Java 2D графику в Оракле - море.
Но базовые операции просты для освоения и запоминания последовательности действий при получении устойчивых и приятных результатов.
Существуют и многие внешние библиотеки, доступные в Java и других языках и средах программирования.
Пример тут.
GDAL - один из мощных примеров специализированной библиотека по работе с данными ДЗЗ (дистанционного зондирования Земли), легко доступной из Java.