Разделить большой файл geotiff с помощью java

У меня есть большие файлы geotiff, которые я пытаюсь разбить на маленькие изображения png, используя язык Java, я не могу прочитать всю картинку в < strong>BuffredImage, поэтому я просто хочу прочитать его и сохранить как 2 изображения png.

Мой вопрос: как разделить этот большой geotiff на 2 изображения png или jpeg и сохранить тему на диске?


person Javaist    schedule 01.06.2015    source источник
comment
В чем тут вопрос?   -  person Søren Boisen    schedule 01.06.2015
comment
Извините, я только что отредактировал это   -  person Javaist    schedule 01.06.2015
comment
Возможно, для этого нет решения на чистом Java, но вы можете использовать такую ​​утилиту, как tiffmakemosaic из LargeTIFFTools для разделения изображений.   -  person Mick Mnemonic    schedule 01.06.2015
comment
@MickMnemonic большое спасибо, вы можете просто написать свой комментарий в качестве ответа, чтобы закрыть этот вопрос   -  person Javaist    schedule 01.06.2015
comment
Нет проблем, я добавлю ответ позже. Я надеюсь, что LargeTIFFTools работает для вас. Я еще не пробовал это сам, но скоро собираюсь, так как мне нужен такой инструмент для разбиения мультигигабайтных TIFF.   -  person Mick Mnemonic    schedule 01.06.2015


Ответы (2)


Вероятно, не существует решения на чистом Java для разделения очень больших файлов TIFF на более мелкие. Однако вы можете использовать такую ​​утилиту, как tiffmakemosaic из LargeTIFFTools для разделения изображений. Утилита поставляется со встроенными функциями для преобразования разделенных изображений в формат JPEG.

Если вам нужны ваши изображения в формате PNG, вы можете использовать, например. библиотеку ImageIO, как предложено в этой теме.

person Mick Mnemonic    schedule 01.06.2015

Используя Java ImageIO, вы должны иметь возможность читать в память только части файла. Если файл TIFF состоит из фрагментов, вы можете читать отдельные фрагменты с помощью ImageReader.readTile(int, int, int). В противном случае вы можете использовать ImageReader.read(int, ImageReadParam) с параметром ImageReadParam, который вы вызвали setSourceRegion включен.

Однако

Поддержка этих функций зависит от фактической реализации ImageReader. В этом случае ImageReader для файлов geotiff не поставляется с Java ImageIO, поэтому вам нужно будет получить его в другом месте. Так как geotiff полностью совместим с TIFF 6.0, вы можете использовать обычную программу чтения TIFF, если вы не Не нужны дополнительные геоданные. В JAI включена одна . Я также нашел полную программу для чтения geotiff здесь: GeoTools. Я не знаю, поддерживает ли какой-либо из этих ImageReaders чтение частичных изображений.

person Søren Boisen    schedule 01.06.2015