Понятно, тогда я неправильно понял вопрос; Я тоже с нетерпением жду ответа, выглядит полезным.
я есть большой компонент свинга для записи в TIFF. Компонент слишком велик для загрузки TIFF в память, поэтому мне нужно либо создать большой BufferedImage, который поддерживается на основе WritableRaster на основе диска (как уже упоминалосьВот) или используйте JAI.
JAI кажется лучшим ответом, кроме полной путаницы в проекте.
Учитывая это, кто-то может наметить шаги для записи моего компонента Swing в мозаичный TIFF без исчерпания памяти?
Размер изображения может быть 10000x700
В идеале я хотел бы создать какой-нибудь образ на основе диска и записать на него части компонента, каждая запись будет записана на диск.
РЕДАКТИРОВАТЬ
Я думаю, что я мог бы сделать это с ImageWriter, однако я получаю NoSuchElementException, когда я вызываю:
ImageWriter imageWriter = ImageIO.getImageWritersByFormatName("tif").next();
У меня есть jai_code.jar и jai_core.jar jar на моем classpath, есть ли что-то еще, что я должен сделать?
РЕДАКТИРОВАТЬ Я могу создать очень большой TIFF с использованием JAI, но JAI не поддерживает сжатие TIFF, поэтому размер файла составляет 92 МБ.
Если я установлю JAI-ImageIO, я могу создать сжатый TIFF с помощью ImageWriter, но только из растра или BufferedImage, для которого у меня недостаточно памяти.
Есть ли какой-нибудь способ сделать двухэтапный подход, использовать JAI для создания большого TIFF, а затем сжать большой TIFF, не загружая все это в память?