ImageMagick - Chuyển đổi nhiều trang pdf thành gif hoạt hình


9

Tôi có một tệp PDF hai trang mà tôi muốn chuyển đổi thành tệp GIF hoạt hình. Một bài đăng trên TeX StackExchange cung cấp cho ImageMagick một lớp lót sau:

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

Nếu tôi thử điều này trên một hộp linux ( convert --versionđưa ra 6.5.4-7 2012-04-10) tôi sẽ nhận được nhật ký này:

"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

[ gslà GPL Ghostscript 8.70 (2009-07-31)] và nó hoạt động như mong đợi. Nhưng nếu tôi thử điều này trên máy mac của mình, sử dụng bộ ImageMagick được cài đặt bởi macports (6.8.0-7 2013-01-04), tôi nhận được nhật ký này:

"/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/gsxlà GPL GhostScript 9.06 (2012-08-08)] Lần này, tệp GIF kết quả chỉ có một khung, trang đầu tiên của PDF.

Cách giải quyết của tôi cho đến nay là sử dụng pdftk file.pdf burstđể tách từng trang PDF thành tệp riêng của mình convert [options] pg_*.pdf file.gif. Điều này hoạt động tốt, nhưng tôi thích một kịch bản một dòng.

Các phiên bản mac gần đây hơn, tôi đoán đó là vấn đề thực hiện. Sự khác biệt lớn duy nhất tôi thấy giữa hai là -sDEVICE=pnmrawcho phiên bản linux và -sDEVICE=pngalphamac. Tôi có thể nói convertđể vượt qua các tùy chọn để gsx?


ĐÚNG ? :), nhưng thành thật mà nói, tại sao bạn không thử nó!

@Borderline: Tôi đã thử thêm -sDEVICE=pnmrawvào các converttùy chọn dòng lệnh và nhận được phản hồi "tùy chọn không nhận dạng".
Matthew Leingang 20/03/13

2
Tại sao không kết hợp cả hai lệnh thành một lệnh đơn? pdftk file.pdf burst && convert [options pg_*.pdf file.gif Bằng cách này, Terminal sẽ chạy lệnh thứ hai sau khi hoàn thành lệnh đầu tiên bạn yêu cầu.
Danijel-James W

Câu trả lời:


3

Lệnh sau hoạt động tốt với tôi từ bản PDF mà tôi đã làm việc. Sự khác biệt duy nhất từ ​​lệnh ban đầu của bạn là hủy kích hoạt kênh alpha:

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

Tôi đang sử dụng Version: ImageMagick 6.8.3-3 2013-02-21 Q16 http://www.imagemagick.orgvà homebrew.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.