ImageMagick - แปลงไฟล์ PDF หลายไฟล์เป็น gif แบบเคลื่อนไหว


9

ฉันมีไฟล์ PDF สองหน้าซึ่งฉันต้องการแปลงเป็นไฟล์ GIF แบบเคลื่อนไหว โพสต์บนเท็กซ์ StackExchangeให้ดังต่อไปนี้ ImageMagick หนึ่งซับ:

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

ถ้าฉันลองมันในกล่อง linux ( convert --versionให้ 6.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

[ gsคือ GPL Ghostscript 8.70 (2009-07-31)] และทำงานได้ตามที่คาดไว้ แต่ถ้าฉันลองบน mac ของฉันโดยใช้ ImageMagick suite ที่ติดตั้งโดย macports (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/gsxคือ GPL GhostScript 9.06 (2012-08-08)] เวลานี้ไฟล์ GIF ที่ได้จะมีเพียงหนึ่งเฟรมคือหน้าแรกของ PDF

วิธีแก้ปัญหาของฉันเพื่อให้ห่างไกลได้รับที่จะใช้pdftk file.pdf burstในการแยกออกในแต่ละหน้าของไฟล์ PDF convert [options] pg_*.pdf file.gifไปยังไฟล์ของตัวเองแล้ว ใช้งานได้ดี แต่ฉันต้องการสคริปต์บรรทัดเดียว

เวอร์ชั่น mac นั้นเป็นรุ่นที่ใหม่กว่าฉันคาดเดาว่ามันเป็นเรื่องของการนำไปใช้งาน ความแตกต่างที่สำคัญอย่างเดียวที่ฉันเห็นระหว่างสองคือ-sDEVICE=pnmrawสำหรับรุ่น linux และ-sDEVICE=pngalphaสำหรับ mac ฉันสามารถบอกconvertให้ส่งต่อตัวเลือกไปที่ได้gsxหรือไม่


ใช่ไหม :) แต่พูดตามตรงแล้วทำไมคุณไม่ลองดู!

@Borderline: ฉันพยายามเพิ่ม-sDEVICE=pnmrawไปยังconvertตัวเลือกบรรทัดคำสั่งและได้เป็น "ตัวเลือกที่ไม่รู้จัก" การตอบสนอง
Matthew Leingang

2
ทำไมไม่รวมคำสั่งทั้งสองเป็นคำสั่งบรรทัดเดียว? pdftk file.pdf burst && convert [options pg_*.pdf file.gif ด้วยวิธีนี้ Terminal จะเรียกใช้คำสั่งที่สองเมื่อคำสั่งแรกที่คุณร้องขอเสร็จสมบูรณ์
Danijel-James W

คำตอบ:


3

คำสั่งต่อไปนี้ทำงานได้ดีสำหรับฉันจากกระดาษ PDF ฉันได้ทำงานกับ ข้อแตกต่างจากคำสั่งดั้งเดิมของคุณคือการปิดช่องอัลฟา:

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และโฮมบรูว์

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.