ImageMagick: конвертировать выход после нескольких страниц

16

Я пытаюсь конвертировать некоторые jpgs в один PDF-файл с помощью конвертировать.

конвертировать * .jpg new.pdf

Но конвертирование выходит после 18 страниц. Выходные данные в порядке, но не завершены.

convert-im6.q16: DistributedPixelCache '127.0.0.1' @ error/distribute-cache.c/ConnectPixelCacheServer/244.
convert-im6.q16: cache resources exhausted `094708.JPG' @ error/cache.c/OpenPixelCache/3945.
...

Я попробовал некоторые настройки лимита, но безуспешно. Если я попробую другие jpgs, то это тот же результат.

Есть идеи? У меня много свободной памяти.

Version: ImageMagick 6.9.7-4 Q16 x86_64 20170114 
...
Delegates (built-in): bzlib djvu fftw fontconfig freetype jbig jng jp2 jpeg lcms lqr ltdl lzma openexr pangocairo png tiff wmf x xml zlib
chris01
источник
Похоже, что доступна более новая версия, так что вы можете просто проверить сайт, загрузить и обновить, если применимо. Если это ошибка, она может быть исправлена ​​в более новой версии. Что-то рассмотреть, возможно, по крайней мере. imagemagick.org/script/download.php
ИТ-сок Pimp
2
Проверьте -limitпереключатель .... imagemagick.org/script/command-line-options.php#limit Вы можете использовать -limit memory <#>этот переключатель, если на вашем компьютере недостаточно памяти для обработки всех файлов. В противном случае, попытайтесь объединить меньше, чем вы в меньших партиях, и посмотрите, имеет ли это какое-то значение. Поэтому, если их сто, скопируйте 25 в тестовую папку и посмотрите, происходит ли то же самое с 25, например. Возможно, вы можете объединить их все в меньший блок, а затем в конце объединить документы PDF, которые были созданы вместе. Я всегда использовал PDFTK для слияния файлов PDF, хотя.
Сок Pimp IT

Ответы:

24

Попробуйте добавить следующую опцию, чтобы увеличить кеш

convert -limit memory 1GiB -limit disk 1GiB *.jpg new.pdf

Если это не работает, установите ограничения в конфигурационный файл изображения/etc/ImageMagick-6/policy.xml

<policy domain="resource" name="memory" value="256MiB"/>
<policy domain="resource" name="disk" value="1GiB"/>

в

<policy domain="resource" name="memory" value="3GB"/>
<policy domain="resource" name="disk" value="2GB"/>

и попробуйте еще раз

Филипп Гачу
источник
Изменение на policy.xmlимеет тот же эффект, что и параметры командной строки, но является постоянным. Так что это почти всегда хорошая идея, потому что это «пиши и забудь».
Танус
5
@tanius редактировал xml, но опции CLI не работали. Ubuntu 18.10, ImageMagick 6.9.10-8, с этими изображениями: github.com/cirosantilli/media/blob/master/…
Сиро Сантилли 新疆 改造 中心 法轮功 六四 事件
Так же, как сообщает Ciro, cli не работает, xml работает. Версия: ImageMagick 6.9.7-4 Q16 x86_64 20170114 в Debian 9.
Луис Антолин Кано
github.com/ImageMagick/ImageMagick/issues/… говорит, что политика безопасности в XML будет переопределять параметры командной строки.
Джамадагни