9

I have a two-page PDF file that I would like to convert to an animated GIF file. A post on the TeX StackExchange gives the following ImageMagick one-liner:

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

If I try this on a linux box (convert --version gives 6.5.4-7 2012-04-10) I get this log:

"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 is GPL Ghostscript 8.70 (2009-07-31)] and it works as expected. But if I try this on my mac, using the ImageMagick suite installed by macports (6.8.0-7 2013-01-04), I get this log:

"/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 is GPL GhostScript 9.06 (2012-08-08)] This time the resulting GIF file has only one frame, the first page of the PDF.

My workaround so far has been to use pdftk file.pdf burst to split out each page of the PDF to its own file, then convert [options] pg_*.pdf file.gif. This works fine, but I'd prefer a one-line script.

The mac versions being more recent, I would guess it's a matter of implementation. The only major difference I see between the two is -sDEVICE=pnmraw for the linux version and -sDEVICE=pngalpha for the mac. Can I tell convert to pass options to gsx?

3
  • YES ? :), but to be honest, why dont you just try it!
    – user44516
    Mar 20, 2013 at 13:51
  • @Borderline: I tried adding -sDEVICE=pnmraw to the convert command line options and got an "unrecognized option" response. Mar 20, 2013 at 14:16
  • 2
    Why not combine both commands into a single line command? pdftk file.pdf burst && convert [options pg_*.pdf file.gif This way, Terminal will run the second command once it has completed the first command you requested. Oct 3, 2013 at 0:05

1 Answer 1

4

The following command worked well for me from a paper PDF I've worked on. The only difference from your original command is deactivating the alpha channel:

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

I'm using Version: ImageMagick 6.8.3-3 2013-02-21 Q16 http://www.imagemagick.org and homebrew.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .