Мне нужно как создавать, так и разбивать многостраничные TIFF-изображения размером от 2 до почти 100 страниц (A4, 300 dpi, 2500 × 3500 px). Задание периодически выполняется скриптом на сервере Linux x64. В настоящее время я использую Imagemagick. Меньшие случаи не представляют никаких проблем, но большие делают.
Мне нужно радикально уменьшить количество памяти, используемой во время операции.
Например, это:
convert *.jpg -compress lzw output.tif
(70 файлов JPEG) потребляет около 4,6 ГБ ОЗУ, хотя каждый вход составляет менее 2 МБ, результирующий файл - менее 250 МБ.
Обратная операция:
convert input.tif output-%04d.png
имеет похожие проблемы.
Из того, что я прочитал, это происходит потому, что Imagemagick сначала загружает и декодирует все входные изображения и только после этого начинает кодировать их в выходной файл.
Как я могу создавать и разделять многостраничные изображения TIFF без такого огромного объема памяти? Мне не обязательно использовать ImageMagick, подойдет любой другой бесплатный инструмент.