Saya memiliki file PDF dua halaman yang ingin saya konversi menjadi file GIF animasi. Sebuah posting di TeX StackExchange memberikan satu-liner ImageMagick berikut:
convert -verbose -delay 50 -loop 0 -density 300 file.pdf file.gif
Jika saya mencoba ini pada kotak linux ( convert --version
memberikan 6.5.4-7 2012-04-10) saya mendapatkan log ini:
"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
adalah GPL Ghostscript 8.70 (2009-07-31)] dan berfungsi seperti yang diharapkan. Tetapi jika saya mencoba ini di mac saya, menggunakan ImageMagick suite yang diinstal oleh macports (6.8.0-7 2013-01-04), saya mendapatkan log ini:
"/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)] Kali ini file GIF yang dihasilkan hanya memiliki satu frame, halaman pertama dari PDF.
Solusi saya sejauh ini telah digunakan pdftk file.pdf burst
untuk membagi setiap halaman PDF ke file sendiri, lalu convert [options] pg_*.pdf file.gif
. Ini berfungsi dengan baik, tapi saya lebih suka skrip satu baris.
Versi mac menjadi lebih baru, saya kira ini masalah implementasi. Satu-satunya perbedaan utama yang saya lihat antara keduanya adalah -sDEVICE=pnmraw
untuk versi linux dan -sDEVICE=pngalpha
untuk mac. Dapatkah saya memberi tahu convert
untuk meneruskan opsi gsx
?
-sDEVICE=pnmraw
ke convert
opsi baris perintah dan mendapat respons "opsi yang tidak dikenal".
pdftk file.pdf burst && convert [options pg_*.pdf file.gif
Dengan cara ini, Terminal akan menjalankan perintah kedua setelah menyelesaikan perintah pertama yang Anda minta.