конвертировать несколько png в один pdf

У меня есть 280 файлов pgn, которые я хочу объединить и преобразовать в один PDF-файл.

Имена файлов PNG находятся в последовательности p000.png, p001.png и т. Д., А общая площадь составляет около 30 МБ.

Я сделал:

convert p00*.png to myfile.pdf 

и он работал нормально. Скорее всего, в правильном порядке.

Но когда я сделаю:

 conver p*.png to myfile.pdf 

Он потребляет все мои 4 ГБ памяти и половину моего обмена. Затем он падает с ошибкой

 convert: memory allocation failed `myfile.pdf' @ error/pdf.c/WritePDFImage/1595. 

Любая идея о том, как сделать обходной путь этой проблемы?

Я думаю, что достаточно хорошим решением было бы использовать однократное convert файла в формате pdf с тем же именем. Затем используйте pdfunite или pdftk для их объединения. Но я не знаю, как использовать convert таким образом.

Imagemagick кажется очень жестоким с использованием памяти. Предложение состоит в том, чтобы использовать -limit, чтобы ограничить конвертацию размера памяти, будет использовать кеш диска для чего-то еще, что ему нужно. Прочтите объяснение здесь:

http://www.imagemagick.org/pipermail/magick-users/2002-March/001285.html

И вот как использовать опцию -limit: http://www.imagemagick.org/script/command-line-options.php#limit

Если нет, вы можете сделать это, как описано, конвертировать каждое изображение отдельно, а затем слить их с каким-либо другим инструментом. Что-то вроде

 for name in p*.png; do convert $name `basename $name .png`.pdf; done 

должен это сделать.

В основном, он выполняет итерацию по всем файлам png, запускает их преобразование, единственное волшебство – это basename $name .png , которое будет заменено именем файла за вычетом части .png, так что при прикреплении к нему расширения .pdf имя файла имеет смысл.

Попробуйте сами, чтобы вы поняли, что такое basename:

 basename something.png .png echo `basename something.png .png`.pdf