使用ImageMagick将pdf矢量图形转换为png图片
在我写的《基于MoinMoin+ConTeXt实现包含数学内容的Wiki网站》一文中谈到了将 TeX 生成的 pdf 矢量图形转换为背景透明的 png 图片,这是利用 ImageMagick 工具套件中的 convert 命令实现的。
convert 命令有许多选项参数,本文用到的选项如下:
- -trim:裁剪图像四周空白区域;
- -transparent color:去除图像中指定的颜色;
- -density geometry:设定图像的 DPI 值,若不明 DPI 值的概念,可参考《有关pt, px及DPI的知识》;
- -antialias:让图像具有抗锯齿的效果;
- -quality:图像压缩等级。
下面先由一份 ConTeXt 文档生成 pdf 图形,文档内容如下:
\enableregime[utf]
\usemodule[chinese]
\usemodule[chart]
\setuppagenumbering[state=no]
\starttext
\setupFLOWcharts
[option=test,
nx=4,
ny=3,
dx=\bodyfontsize,
dy=\bodyfontsize,
maxwidth=\textwidth]
\startFLOWchart [flowchart-a]
\startFLOWcell
\name{first}
\location{1,1}
\shape{singledocument}
\text{并非是真正的文档}
\stopFLOWcell
\stopFLOWchart
\FLOWchart[flowchart-a]
\stoptext
\usemodule[chinese]
\usemodule[chart]
\setuppagenumbering[state=no]
\starttext
\setupFLOWcharts
[option=test,
nx=4,
ny=3,
dx=\bodyfontsize,
dy=\bodyfontsize,
maxwidth=\textwidth]
\startFLOWchart [flowchart-a]
\startFLOWcell
\name{first}
\location{1,1}
\shape{singledocument}
\text{并非是真正的文档}
\stopFLOWcell
\stopFLOWchart
\FLOWchart[flowchart-a]
\stoptext
生成的 pdf 文档截图如下:
使用 convert 命令对该 pdf 文档转换:
$ convert -quality 100 -antialias -density 96 -transparent white -trim test.pdf test.png
生成的 png 图片如下: