ImageMagick - Converti pdf multipagina in GIF animate


9

Ho un file PDF di due pagine che vorrei convertire in un file GIF animato. Un post su TeX StackExchange riporta il seguente ImageMagick one-liner:

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

Se provo questo su una scatola di Linux ( convert --versiondà 6.5.4-7 2012-04-10) ottengo questo registro:

"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

[ gsè GPL Ghostscript 8.70 (2009-07-31)] e funziona come previsto. Ma se provo questo sul mio mac, usando la suite ImageMagick installata da macports (6.8.0-7 2013-01-04), ottengo questo registro:

"/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/gsxis GPL GhostScript 9.06 (2012-08-08)] Questa volta il file GIF risultante ha un solo frame, la prima pagina del PDF.

La mia soluzione finora è stata quella di utilizzare pdftk file.pdf burstper suddividere ogni pagina del PDF nel suo file, quindi convert [options] pg_*.pdf file.gif. Funziona bene, ma preferirei uno script di una riga.

Le versioni mac sono più recenti, immagino che sia una questione di implementazione. L'unica grande differenza che vedo tra i due è -sDEVICE=pnmrawper la versione Linux e -sDEVICE=pngalphaper il Mac. Posso dire convertdi passare le opzioni a gsx?


SÌ ? :), ma ad essere sincero, perché non provarlo!

@Borderline: ho provato ad aggiungere -sDEVICE=pnmrawalle convertopzioni della riga di comando e ho ottenuto una risposta "opzione non riconosciuta".
Matthew Leingang,

2
Perché non combinare entrambi i comandi in un comando a riga singola? pdftk file.pdf burst && convert [options pg_*.pdf file.gif In questo modo, Terminale eseguirà il secondo comando una volta completato il primo comando richiesto.
Danijel-James W,

Risposte:


3

Il seguente comando ha funzionato bene per me da un PDF cartaceo su cui ho lavorato. L'unica differenza rispetto al comando originale è la disattivazione del canale alfa:

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

Sto usando Version: ImageMagick 6.8.3-3 2013-02-21 Q16 http://www.imagemagick.orge homebrew.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.