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 frase de ImageMagick:
convert -verbose -delay 50 -loop 0 -density 300 file.pdf file.gif
Si pruebo esto en un cuadro de Linux ( convert --version
da 6.5.4-7 2012-04-10) obtengo 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
[ gs
es GPL Ghostscript 8.70 (2009-07-31)] y funciona como se esperaba. Pero si pruebo 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/gsx
es GPL GhostScript 9.06 (2012-08-08)] Esta vez, el archivo GIF resultante tiene solo un marco, la primera página del PDF.
Mi solución hasta ahora ha sido usar pdftk file.pdf burst
para dividir cada página del PDF en su propio archivo, luego convert [options] pg_*.pdf file.gif
. Esto funciona bien, pero prefiero 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 diferencia importante que veo entre los dos es -sDEVICE=pnmraw
para la versión de Linux y -sDEVICE=pngalpha
para Mac. ¿Puedo indicarle convert
que pase opciones a gsx
?
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.org
y homebrew.
usuario44516
Mateo Leingang
-sDEVICE=pnmraw
a lasconvert
opciones de la línea de comando y obtuve una respuesta de "opción no reconocida".Daniel-James W.
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ó.