Создание и разбиение больших многостраничных TIFF-изображений

мне нужно как создавать, так и разбивать многостраничные изображения TIFF, от 2 до почти 100 страниц (A4, 300 dpi, 2500×3500 px). Задание периодически выполняется сценарием на сервере x64 Linux. В настоящее время я использую Imagemagick. Меньшие случаи не создают никаких проблем,но большие.

мне нужно радикально уменьшить объем памяти, используемой во время операции.

например, так:

convert *.jpg -compress lzw output.tif

(70 файлов jpeg) потребляет около 4,6 ГБ ОЗУ, даже если каждый входной сигнал чем 2MB приводя к архив чем 250MB.

обратная операция:

convert input.tif output-%04d.png

имеет подобных проблем.

из того, что я прочитал, это происходит потому, что Imagemagick сначала загружает и декодирует все входные изображения и только после этого начинает кодировать их в выходной файл.

Как я могу создавать и разделять многостраничные изображения TIFF без такого огромного объема памяти? Мне не обязательно использовать ImageMagick, любой другой бесплатный инструмент будет в порядке.

14
задан Karol S
07.01.2023 8:05 Количество просмотров материала 3369
Распечатать страницу

1 ответ

У меня была такая же проблема сегодня при попытке разделить изображение 1700, файл 1G tif. 16G памяти было недостаточно, затем попытался иметь его кэш на диске, но это было медленно, и он легко исчерпал более 100G на жестком диске, не выполняя ничего (это, вероятно, ошибка).

но, по-видимому, Imagemagick может извлечь определенный tif из исходного файла, не загружая его полностью, поэтому смог разделить больший файл с помощью простого bash сценарий:

END=2000
for ((i=1;i<=END;i++));do
echo $i
convert bigassfile.tif[$i] -scene 1 split/smallerfile_$i.tif
done

Не знаю, хотя, как создать большой файл, не хватает памяти, так что, может быть, это половина ответа?

1
отвечен tarikki 2023-01-08 15:53

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх