ImageMagick-将多页pdf转换为动画gif


9

我有一个两页的PDF文件,我想将其转换为GIF动画文件。一对TeX的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上使用macports(6.8.0-7 2013-01-04)安装的ImageMagick套件尝试此操作,则会收到以下日志:

"/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=pnmrawlinux版本和-sDEVICE=pngalphamac 版本。我可以告诉convert将选项传递给gsx吗?


是吗 :),但老实说,您为什么不尝试一下呢!

@Borderline:我尝试添加-sDEVICE=pnmrawconvert命令行选项,并得到“无法识别的选项”响应。
Matthew Leingang

2
为什么不将两个命令合并为一个单行命令? pdftk file.pdf burst && convert [options pg_*.pdf file.gif 这样,终端将在完成您请求的第一个命令后运行第二个命令。
Danijel-James W

Answers:


3

下面的命令对我处理过的论文PDF来说很有效。与原始命令的唯一区别是停用了Alpha通道:

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和自制软件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.