ImageMagick - Converta PDF de várias páginas em gif animado

9

Eu tenho um arquivo PDF de duas páginas que gostaria de converter em um arquivo GIF animado. Uma publicação no TeX StackExchange fornece a seguinte linha única do ImageMagick:

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

Se eu tentar isso em uma caixa Linux ( convert --versionfornece 6.5.4-7 2012-04-10), recebo este 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é GPL Ghostscript 8.70 (31-07-2009)] e funciona conforme o esperado. Mas se eu tentar isso no meu mac, usando o ImageMagick suite instalado pelo macports (6.8.0-7 2013-01-04), recebo este 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/gsxis GPL GhostScript 9.06 (08/08/2012)] Desta vez, o arquivo GIF resultante possui apenas um quadro, a primeira página do PDF.

Até agora, minha solução alternativa foi usar pdftk file.pdf burstpara dividir cada página do PDF em seu próprio arquivo convert [options] pg_*.pdf file.gif. Isso funciona bem, mas eu preferiria um script de uma linha.

Sendo as versões mac mais recentes, acho que é uma questão de implementação. A única grande diferença que vejo entre os dois é -sDEVICE=pnmrawpara a versão linux e -sDEVICE=pngalphapara o mac. Posso dizer convertpara passar opções gsx?

Matthew Leingang
fonte
SIM ? :), mas para ser sincero, por que você simplesmente não experimenta!
@ Borderline: Tentei adicionar -sDEVICE=pnmrawàs convertopções da linha de comando e obtive uma resposta "opção não reconhecida".
Matthew Leingang
2
Por que não combinar os dois comandos em um único comando de linha? pdftk file.pdf burst && convert [options pg_*.pdf file.gif Dessa forma, o Terminal executará o segundo comando assim que concluir o primeiro comando solicitado.
Danijel-James W

Respostas:

3

O comando a seguir funcionou bem para mim a partir de um PDF em que trabalhei. A única diferença do seu comando original é desativar o canal alfa:

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

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

Dan Halperin
fonte