Imagemagick 将PostScript转换为GIF的最快方法是什么?
我现在正在使用ImageMagickImagemagick 将PostScript转换为GIF的最快方法是什么?,imagemagick,postscript,Imagemagick,Postscript,我现在正在使用ImageMagickconvert实用程序。我有一个PostScript文件,转换为GIF大约需要90秒 我正在寻找一种更快的方法,通过将选项修改为“convert”来实现这一点 当我说“快”时,最好是几秒钟,但我会采取任何明显的加速。适合交互式GUI的东西 我只需要黑白或灰度的图像(特别是地震数据的图像“摆动轨迹”,所以黑白很好。) 其他可接受的格式有BMP、GIF、JPEG、JPG、PCX、PGM、PNG、PNM、PPM、RAS、TGA、TIF或TIFF 试图坚持ImageM
convert
实用程序。我有一个PostScript文件,转换为GIF大约需要90秒
我正在寻找一种更快的方法,通过将选项修改为“convert”来实现这一点
当我说“快”时,最好是几秒钟,但我会采取任何明显的加速。适合交互式GUI的东西
我只需要黑白或灰度的图像(特别是地震数据的图像“摆动轨迹”,所以黑白很好。)
其他可接受的格式有BMP、GIF、JPEG、JPG、PCX、PGM、PNG、PNM、PPM、RAS、TGA、TIF或TIFF
试图坚持ImageMagick,因为它已经安装好了,并试图避免向我的老板推销任何新东西。还是很高兴听到其他建议 我的建议是:使用Ghostscript 由于您已经安装了一个工作的ImageMagick,这意味着Ghostscript也存在:因为ImageMagick无法单独将PDF或PostScript转换为光栅图像——它必须调用Ghostscript作为其代理来完成此操作 Ghostscript可以直接将PDF/PostScript输入转换为TIFF/TIF/TIFFg4、JPEG、PBM、PCX、PNG、PNM、PPM、BMP光栅图像输出 优点是:您不需要使用ImageMagick。因此,它速度更快,还可以让您更直接地控制转换参数。如果您通过ImageMagick运行Ghostscript,这是一种间接级别,并不总是必需的。(有时可能需要对Ghostscript生成的光栅图像数据添加一些微调和后处理操作,但您的情况似乎并非如此。)
唯一的缺点是:Ghostscript无法生成GIF。如果需要GIF(您似乎不需要),则需要ImageMagick将Ghostscript的光栅输出后处理为GIF 例如,通过运行以下命令,可以查看ImageMagick如何调用Ghostscript(以及调用时使用的参数——在stderr上查找包含
gs
、gsx
或gswin32c
或gswin64c
)的打印行:
convert -verbose some.pdf[0] some.gif
更新 我确实运行了一个非常非常不科学的“基准测试”,每次运行以下两个命令100次,将随机选择的333页转换为GIF,测量所消耗的时间。我并行运行这些命令,因此两者都必须处理相同的总体系统负载,从而使结果更具可比性:
转换直接生成GIF:
time for i in $(seq -w 1 100); do
convert \
PDF32000_2008.pdf[333] \
p333-im-no_${i}.gif ;
done
convert
,以获取GIF:
time for i in $(seq -w 1 100); do
gs \
-q \
-o - \
-dFirstPage=333 \
-dLastPage=333 \
-sDEVICE=pnggray \
PDF32000_2008.pdf \
| \
convert \
- \
p333-gs-no_${i}.gif ;
done
convert
以实现PDF->GIF转换,该转换仅在“背后”使用Ghostscript):
第二个命令的计时结果(直接+公开运行gs
,将其输出到convert
:
real 1m27.370s
user 1m23.447s
sys 0m3.435s
还有一件事:
- 100个“鬼脚本”(Ghostscript)gif的总大小为1.6mbyte,但它们是8位灰度
- 100个“ImageMagic direct”GIF的总大小为1.2M字节,但它们是2位的黑色+白色
- 我目前没有动机进一步调整测试命令行参数,以使生成的文件更具可比性
这个结果(149秒对87秒)给了我足够的信心,让我相信,当您遵循我的建议时,您可以获得显著的性能改进。:-我的建议是:使用Ghostscript 由于您已经安装了一个工作的ImageMagick,这意味着Ghostscript也存在:因为ImageMagick无法单独将PDF或PostScript转换为光栅图像——它必须调用Ghostscript作为其代理来完成此操作 Ghostscript可以直接将PDF/PostScript输入转换为TIFF/TIF/TIFFg4、JPEG、PBM、PCX、PNG、PNM、PPM、BMP光栅图像输出 优点是:您不需要使用ImageMagick。因此,它速度更快,还可以让您更直接地控制转换参数。如果您通过ImageMagick运行Ghostscript,这是一种间接级别,并不总是必需的。(有时可能需要对Ghostscript生成的光栅图像数据添加一些微调和后处理操作,但您的情况似乎并非如此。)
唯一的缺点是:Ghostscript无法生成GIF。如果需要GIF(您似乎不需要),则需要ImageMagick将Ghostscript的光栅输出后处理为GIF 例如,通过运行以下命令,可以查看ImageMagick如何调用Ghostscript(以及调用时使用的参数——在stderr上查找包含
gs
、gsx
或gswin32c
或gswin64c
)的打印行:
convert -verbose some.pdf[0] some.gif
更新 我确实运行了一个非常非常不科学的“基准测试”,每次运行以下两个命令100次,将随机选择的333页转换为GIF,测量所消耗的时间。我并行运行这些命令,因此两者都必须处理相同的总体系统负载,从而使结果更具可比性:
转换直接生成GIF:
time for i in $(seq -w 1 100); do
convert \
PDF32000_2008.pdf[333] \
p333-im-no_${i}.gif ;
done
convert
,以获取GIF:
time for i in $(seq -w 1 100); do
gs \
-q \
-o - \
-dFirstPage=333 \
-dLastPage=333 \
-sDEVICE=pnggray \
PDF32000_2008.pdf \
| \
convert \
- \
p333-gs-no_${i}.gif ;
done
convert
以实现PDF->GIF转换,该转换仅使用Ghostscript“b