Как читать изображения по частям (не ImageIO.read ())? - PullRequest
1 голос
/ 21 сентября 2011

Java поддерживает чтение целых изображений с помощью ImageIO.read(), но есть ли способ чтения изображения только частично?

Фон:

Я работаюв приложении карты, которое считывает большие изображения, разделяет их, а затем использует сгенерированные плитки в качестве фона карты.В некоторых случаях предоставленное изображение может быть настолько большим, что чтение образа как BufferedImage может уже вызвать OutOfMemoryError.

Я знаю, что мог бы предоставить виртуальной машине больше места в куче, но я быЯ предпочитаю способ еще больше снизить риск, читая изображение только по частям, то есть в ячейках размером 256 * 256 пикселей, которые я мог бы сразу сохранить в файловой системе.

Ответы [ 2 ]

2 голосов
/ 21 сентября 2011

Уже давно я не использую его, но вы можете сделать это с помощью JAI (Java Advanced Imaging), используя TiledImage .

Домашняя страница JAI.

1 голос
/ 23 сентября 2011

Если вы используете формат PNG, эта библиотека позволяет загружать изображение построчно, поэтому вам не нужно загружать его полностью в память http://code.google.com/p/pngj/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...