Java поддерживает чтение целых изображений с помощью ImageIO.read()
, но есть ли способ чтения изображения только частично?
Фон:
Я работаюв приложении карты, которое считывает большие изображения, разделяет их, а затем использует сгенерированные плитки в качестве фона карты.В некоторых случаях предоставленное изображение может быть настолько большим, что чтение образа как BufferedImage
может уже вызвать OutOfMemoryError
.
Я знаю, что мог бы предоставить виртуальной машине больше места в куче, но я быЯ предпочитаю способ еще больше снизить риск, читая изображение только по частям, то есть в ячейках размером 256 * 256 пикселей, которые я мог бы сразу сохранить в файловой системе.