J'ai un fichier PDF de deux pages que je voudrais convertir en fichier GIF animé. Une publication sur TeX StackExchange donne la ligne unique ImageMagick suivante:
convert -verbose -delay 50 -loop 0 -density 300 file.pdf file.gif
Si j'essaye ceci sur une boîte de Linux ( convert --versiondonne 6.5.4-7 2012-04-10) j'obtiens ce 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
[ gsest GPL Ghostscript 8.70 (2009-07-31)] et cela fonctionne comme prévu. Mais si j'essaye ceci sur mon mac, en utilisant la suite ImageMagick installée par macports (6.8.0-7 2013-01-04), j'obtiens ce journal:
"/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/gsxest GPL GhostScript 9.06 (2012-08-08)] Cette fois, le fichier GIF résultant n'a qu'un seul cadre, la première page du PDF.
Jusqu'à présent, ma solution de contournement a été d'utiliser pdftk file.pdf burstpour diviser chaque page du PDF en son propre fichier convert [options] pg_*.pdf file.gif. Cela fonctionne bien, mais je préférerais un script d'une ligne.
Les versions mac étant plus récentes, je suppose que c'est une question d'implémentation. La seule différence majeure que je vois entre les deux est -sDEVICE=pnmrawpour la version linux et -sDEVICE=pngalphapour le mac. Puis-je dire convertde transmettre des options à gsx?
-sDEVICE=pnmrawaux convertoptions de ligne de commande et j'ai obtenu une réponse "option non reconnue".
pdftk file.pdf burst && convert [options pg_*.pdf file.gif De cette façon, Terminal exécutera la deuxième commande une fois qu'il aura terminé la première commande que vous avez demandée.