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