ImageMagick - Çok sayfalı pdf'yi animasyonlu gif'e dönüştürün


9

Animasyonlu bir GIF dosyasına dönüştürmek istediğim iki sayfalık bir PDF dosyam var. TeX StackExchange'teki bir yayın aşağıdaki ImageMagick tek satırını verir:

convert -verbose -delay 50 -loop 0 -density 300 file.pdf file.gif

Bunu bir linux kutusunda ( convert --version6.5.4-7 2012-04-10 verir) denerseniz bu günlüğü alırım:

"gs" -q -dQUIET -dPARANOIDSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=0 "-sDEVICE=pnmraw" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r300x300"  "-sOutputFile=/tmp/magick-XX30a4nG" "-f/tmp/magick-XX690OkA" "-f/tmp/magick-XX3GCKhu"
/tmp/magick-XX30a4nG[0] PNM 1512x1134 1512x1134+0+0 8-bit DirectClass 9.811mb
/tmp/magick-XX30a4nG[1] PNM 1512x1134 1512x1134+0+0 8-bit DirectClass 9.811mb
file.pdf[0] PDF 1512x1134 1512x1134+0+0 16-bit DirectClass 9.811mb
file.pdf[0] PDF 1512x1134 1512x1134+0+0 16-bit DirectClass 9.811mb
file.pdf=>file-linux.gif[0] PDF 1512x1134 1512x1134+0+0 16-bit Palette PseudoClass 111c 2.620u 0:03

[ gsGPL Ghostscript 8.70 (2009-07-31)] ve beklendiği gibi çalışıyor. Ancak bunu macportsum tarafından yüklenen ImageMagick paketini kullanarak (6.8.0-7 2013-01-04) mac'umda denerseniz, bu günlüğü alıyorum:

"/opt/local/bin/gsx" -q -dQUIET -dSAFER -dBATCH -dNOPAUSE -dNOPROMPT -dMaxBitmap=500000000 -dAlignToPixels=0 -dGridFitTT=2 "-sDEVICE=pngalpha" -dTextAlphaBits=4 -dGraphicsAlphaBits=4 "-r300x300"  "-sOutputFile=/var/folders/kf/t7750q1w8xjcjy0059bpyx180000gq/T/magick-15750GLLaATgky5I1" "-f/var/folders/kf/t7750q1w8xjcjy0059bpyx180000gq/T/magick-15750ljasKifrwJcW" "-f/var/folders/kf/t7750q1w8xjcjy0059bpyx180000gq/T/magick-15750w8mj9AZrkJA8"
/var/folders/kf/t7750q1w8xjcjy0059bpyx180000gq/T/magick-15750GLLaATgky5I1 PNG 1512x1134 1512x1134+0+0 8-bit sRGB 64.5KB 0.050u 0:00.049
file.pdf PDF 1512x1134 1512x1134+0+0 16-bit sRGB 64.5KB 0.000u 0:00.000
file.pdf=>file.gif PDF 1512x1134 1512x1134+0+0 16-bit Palette sRGB 106c 0.410u 0:00.409

[ /opt/local/bin/gsxGPL GhostScript 9.06'dır (2012-08-08)] Bu sefer ortaya çıkan GIF dosyasının PDF'nin ilk sayfası olan tek bir çerçevesi vardır.

Şu ana kadar geçici çözümüm pdftk file.pdf burstPDF'nin her sayfasını kendi dosyasına bölmek için kullanmaktı convert [options] pg_*.pdf file.gif. Bu iyi çalışıyor, ancak tek satırlık bir komut dosyasını tercih ederim.

Mac sürümleri daha yeni olduğu için, bu bir uygulama meselesi sanırım. İkisi arasında gördüğüm tek büyük fark -sDEVICE=pnmrawlinux sürümü ve -sDEVICE=pngalphamac için. convertSeçenekleri iletmeyi söyleyebilir miyim gsx?


EVET ? :), ama dürüst olmak gerekirse, neden sadece denemiyorsun!

@Borderline: Ben ekleyerek çalıştı -sDEVICE=pnmrawiçin convertkomut satırı seçenekleri ve "tanınmayan seçenek" yanıtını aldık.
Matthew Leingang

2
Neden her iki komutu tek bir satır komutunda birleştirmiyorsunuz? pdftk file.pdf burst && convert [options pg_*.pdf file.gif Bu şekilde, Terminal, istediğiniz ilk komutu tamamladıktan sonra ikinci komutu çalıştıracaktır.
Danijel-James W

Yanıtlar:


3

Aşağıdaki komut, üzerinde çalıştığım bir PDF'den benim için iyi çalıştı. Orijinal komutunuzdaki tek fark alfa kanalını devre dışı bırakmaktır:

convert -alpha deactivate -verbose -delay 50 -loop 0 -density 300 paper.pdf file.gif

Ben kullanıyorum Version: ImageMagick 6.8.3-3 2013-02-21 Q16 http://www.imagemagick.orgve homebrewleri.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.