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 --version
donne 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
[ gs
est 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/gsx
est 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 burst
pour 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=pnmraw
pour la version linux et -sDEVICE=pngalpha
pour le mac. Puis-je dire convert
de transmettre des options à gsx
?
-sDEVICE=pnmraw
aux convert
options 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.