ImageMagick - Convierte pdf multipágina a gif animado

9

Tengo un archivo PDF de dos páginas que me gustaría convertir a un archivo GIF animado. Una publicación en TeX StackExchange ofrece la siguiente línea de ImageMagick:

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

Si intento esto en una caja de Linux ( convert --versionda 6.5.4-7 2012-04-10) me sale este 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

[ gses GPL Ghostscript 8.70 (2009-07-31)] y funciona como se esperaba. Pero si intento esto en mi Mac, usando el paquete ImageMagick instalado por macports (6.8.0-7 2013-01-04), obtengo este 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/gsxes GPL GhostScript 9.06 (2012-08-08)] Esta vez el archivo GIF resultante tiene solo un marco, la primera página del PDF.

Hasta ahora, mi solución ha sido utilizar pdftk file.pdf burstpara dividir cada página del PDF en su propio archivo convert [options] pg_*.pdf file.gif. Esto funciona bien, pero preferiría un script de una línea.

Las versiones de Mac son más recientes, supongo que es una cuestión de implementación. La única gran diferencia que veo entre los dos es -sDEVICE=pnmrawpara la versión de Linux y -sDEVICE=pngalphapara Mac. ¿Puedo decirle convertque pase opciones a gsx?

Matthew Leingang
fuente
SI ? :), pero para ser honesto, ¿por qué no lo intentas?
@Borderline: He intentado añadir -sDEVICE=pnmrawa las convertopciones de línea de comandos y tengo una respuesta "opción no reconocida".
Matthew Leingang
2
¿Por qué no combinar ambos comandos en un solo comando de línea? pdftk file.pdf burst && convert [options pg_*.pdf file.gif De esta manera, Terminal ejecutará el segundo comando una vez que haya completado el primer comando que solicitó.
Danijel-James W

Respuestas:

3

El siguiente comando funcionó bien para mí desde un PDF en papel en el que he trabajado. La única diferencia con su comando original es desactivar el canal alfa:

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

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

Dan Halperin
fuente