LINUX.ORG.RU

Проблемы с imagemagick


0

1

Цель — создать один pdf-файл из нескольких jpg-ов. Нагуглил такое решение: convert *.jpg -adjoin -monitor MyPDF.pdf
Попробовал — convert сожрал всю оперативу (1 гб), полез в своп, но так ничего не сделал (и не намониторил ни строчки).
Это так и должно быть, или это баг? Или я что-то делаю не так, и есть какой-то другой способ?

★★★★★

Я бы порекомендовал создать djvu-файл. Все-таки, pdf из jpeg'ов будет слишком тяжелым. Сам тоже как-то пытался собрать pdf из jpeg'ов, но использовал для этого латех.

Eddy_Em ☆☆☆☆☆ ()

Вот вам скриптик для сборки картинок в djvu:

#!/bin/bash
for file in `ls -1`
do
    c44 $file
    echo "File $file processed"
done
echo -e "Linking all... \c"
djvm -c book.djview *.djvu
echo "Done!"
rm *.djvu
mv book.djview book.djvu

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

Хм, вот за это спасибо. Действительно, djvu тут гораздо лучше подходит, не догадался чото.

А все-таки, как заставить convert не подгружать сразу все файлы в память? Просто на будущее.

pevzi ★★★★★ ()
Ответ на: комментарий от pevzi

Попробуйте конвертировать по очереди, а потом каким-нибудь pdftk собирать. Или же использовать латех:

#!/bin/sh
echo -e "\\\documentclass[a4paper]{article}\n\\\usepackage{ed}\n" > book.tex
echo -e "\\\begin{document}\n\\\begin{center}" >> book.tex

cp /Data/scripts/ed.sty ./

for file in *.jpg # если файлов очень много, можно использовать find
do
    name=`echo $file | sed "s/.jpg//"`
    convert -page A4 $file $name.pdf
    echo "$file processed"
    echo -e "\\\includegraphics[height=30cm,width=20cm]{$name.pdf}\\\pagebreak\n" >> book.tex
done
echo -e "\\\end{center}\n\\\end{document}" >> book.tex
pdflatex book.tex

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

В общем ладно, спасибо. Щас еще с параметрами c44 поиграюсь, а то все равно слишком тяжелое. Кстати, интересно, гуец есть для этого? Не то чтобы мне он слишком нужен, просто мог бы пригодиться (:

pevzi ★★★★★ ()
Ответ на: комментарий от pevzi

Про GUI никогда не интересовался. Мануала вполне хватает.

Да, если у вас изображения монохромные, можно сильно выиграть с размером файла, заменим c44 на сjb2.

Eddy_Em ☆☆☆☆☆ ()

Хм, convert 1.jpg 2.jpg pdf:out.pdf всегда отлично работало. Проверил только что еще раз (правда, под виндой :-) - прекрасно работает.

Shlyapa ★★ ()
Ответ на: комментарий от Eddy_Em

Ну, у ТС jpg-ов было просто несколько, а не несколько сотен :-) Попробовал преобразовать только что 15 каких-то случайных фоток - нормально всё, никаких особых тормозов.

Shlyapa ★★ ()
Ответ на: комментарий от Shlyapa

Только что попробовал преобразовать convert'ом несчастную пару десятков фотографий (чуть больше 100Мб суммарного объема). convert отожрал 700Мб памяти и сдаваться не собирался, система подвисла, еле прибил convert...

Eddy_Em ☆☆☆☆☆ ()
Ответ на: комментарий от Eddy_Em

> Да, если у вас изображения монохромные, можно сильно выиграть с размером файла, заменим c44 на сjb2.

Во, это я и хотел, благодарю.

pevzi ★★★★★ ()
Ответ на: комментарий от Shlyapa

Вово, с парочкой изображений и у меня все работает. А вот 55 изображений довольно крупного разрешения — это песец. Только запускаю конверт — сразу хвать и всю оперативу сжёвывает и в своп лезет. Странная реализация, зачем все изображения загонять в оперативу?

pevzi ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.