ImageMagick - एनिमेटेड gif को एनिमेटेड gif में बदलें


9

मेरे पास दो पेज की पीडीएफ फाइल है जिसे मैं एनिमेटेड जीआईएफ फाइल में बदलना चाहूंगा। TeX StackExchange पर एक पोस्ट निम्नलिखित ImageMagick वन-लाइनर देता है:

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

अगर मैं एक लिनक्स बॉक्स पर यह कोशिश करता हूं ( convert --version6.5.4-7 2012-04-10 देता है) मुझे यह लॉग मिलता है:

"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

[ gsGPL घोस्टस्क्रिप्ट 8.70 (2009-07-31)] है और यह उम्मीद के मुताबिक काम करता है। लेकिन अगर मैं अपने मैक पर यह कोशिश करता हूं, तो macports द्वारा स्थापित ImageMagick सूट (6.8.0-7 2013-01-04) का उपयोग करके, मुझे यह लॉग मिलता है:

"/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/gsxGPL घोस्टस्क्रिप्ट 9.06 (2012-08-08)] इस बार परिणामी जीआईएफ फ़ाइल में केवल एक फ्रेम है, पीडीएफ का पहला पृष्ठ।

मेरा अब तक का वर्कफ़ॉर्म pdftk file.pdf burstपीडीएफ के प्रत्येक पृष्ठ को अपनी फ़ाइल में विभाजित करने के लिए उपयोग करना है convert [options] pg_*.pdf file.gif। यह ठीक काम करता है, लेकिन मैं एक-लाइन स्क्रिप्ट पसंद करूंगा।

मैक संस्करण अधिक हाल ही में, मुझे लगता है कि यह कार्यान्वयन की बात है। दोनों के बीच एकमात्र बड़ा अंतर मैं -sDEVICE=pnmrawलिनक्स संस्करण और -sDEVICE=pngalphaमैक के लिए है। क्या मैं convertविकल्पों को पास करना बता सकता हूं gsx?


हाँ ? :), लेकिन ईमानदार होने के लिए, क्यों न आप इसे आज़माएं!

@Borderline: मैं जोड़ने की कोशिश की -sDEVICE=pnmrawकरने के लिए convertकमांड लाइन विकल्प और एक "गैर मान्यता प्राप्त विकल्प" प्रतिक्रिया मिली।
मैथ्यू लिआंगंग

2
दोनों कमांड को एक ही लाइन कमांड में क्यों नहीं मिलाते? pdftk file.pdf burst && convert [options pg_*.pdf file.gif इस तरह, टर्मिनल आपके द्वारा अनुरोधित पहली कमांड को पूरा करने के बाद दूसरी कमांड चलाएगा।
डेनिजेल-जेम्स डब्ल्यू

जवाबों:


3

निम्न आदेश ने मेरे द्वारा काम किए गए एक पेपर पीडीएफ से मेरे लिए अच्छा काम किया। आपके मूल कमांड से एकमात्र अंतर अल्फा चैनल को निष्क्रिय कर रहा है:

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

मैं उपयोग कर रहा हूँ Version: ImageMagick 6.8.3-3 2013-02-21 Q16 http://www.imagemagick.orgऔर होमब्रे।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.