Если собирать Имиджмеджиком многостраничный PDF-файл из картинок разрешением 600 DPI, он ругается на недостаточный размер памяти даже для файлов, которые не такие и большие
convert-im6.q16: cache resources exhausted `0002-bw.png' @ error/cache.c/OpenPixelCache/4095.
convert-im6.q16: cache resources exhausted `0003-bw.png' @ error/cache.c/OpenPixelCache/4095.
Раньше оно работало, но сломалось в процессе обновления системы — в ходе него изменился файл /etc/ImageMagick-6/policy.xml
— тот самый, где по умолчанию запрещено создавать PDF — в нём же задаются и предельные размеры картинок и используемых для их обработки ресурсов. Я эти параметры уже менял в 2018 году, ещё живя под Ubuntu — сейчас у меня Debian, от которого Убунту и происходит. Значения параметров в сохранённой копии конфигурационного файла отличаются от того, что появилось после обновления. Увеличим парочку параметров вдвое:
<policy domain="resource" name="area" value="256MP"/>
<policy domain="resource" name="disk" value="2GiB"/>
После этого сборка идёт как надо.
Лишь недавно заметил, что площадь всё-таки указывается в мегапикселях (MP
), а не в мегабайтах, как у меня почему-то было раньше. При этом в policy.xml
допустимы два варианта: традиционный двоичный, равный 2²⁰ = 1048576 байт, обозначается как MiB
, а то, что обозначают как MB
— мегабайт десятичный, по системе СИ.