LinuxGem
此处为老的 LinuxGem,新版 LinuxGem 请移步 www.linuxgem.org

将 pdf 矢量图形转换为 png 图片

galeki posted @ 2008年9月28日 23:44 in Bash 和它的朋友们 with tags convert ImageMagick , 5400 阅读

修改自: http://silence.is-programmer.com/posts/1045.html

有的时候,想要对 pdf 中的图片进行再处理排列什么的,比如最近正在看嵌入式,开发板的原理图就在一个 pdf 中,每页都是一张电路图,不管是查找起来,还是看起来都非常费劲,如果可以变成一张一张的图片就好了。

ImageMagick 附带的 convert 不仅可以处理图片,还可以将 pdf 转换为 png,方法非常简单,只需要:

convert example.pdf example.png

example.pdf 的每一页,都会转换为 example-x.png 图片,这样,你就可以为每一张图片命名来表明内容,也可以用图像编辑软件改变大小、加注标记,也可以贴到论坛或者 blog 上去了~

convert 命令还有许多选项参数,可以来调节转换的效果:

  • -trim:裁剪图像四周空白区域;
  • -transparent color:去除图像中指定的颜色;
  • -density geometry:设定图像的 DPI 值,若不明 DPI 值的概念,可参考《有关pt, px及DPI的知识》;
  • -antialias:让图像具有抗锯齿的效果;
  • -quality:图像压缩等级。

例如:

convert -quality 100 -antialias -density 96 -transparent white -trim test.pdf test.png

weive 说:
2008年9月29日 02:01

查了一下,ubuntu 8.10里面默认有的。

Avatar_small
Li Yanrui 说:
2008年9月29日 05:08

imagemagick 基本上是各 Linux 的标配软件

weive 说:
2008年9月29日 23:23

弱问,由于转换的效果不大理想,一张图只有50K左右,放大了就模糊了。不知道如何设置高的质量?
convert --help里面的参数多得数不过来。晕。

Head_small
galeki 说:
2008年9月29日 23:33

DPI 参数设置的大一点就可以了~ :)

wzhy 说:
2008年10月15日 03:10

老兄也在搞嵌入式?

Head_small
galeki 说:
2008年10月15日 03:21

@wzhy: 是啊,刚开始,门外汉一个 :)

太云 说:
2009年3月28日 23:26

要是批量转换呢?

Avatar_small
LiYanrui 说:
2009年3月28日 23:33

@太云:

 

#! /bin/bash
n=1
for i in *.ai
do
convert "$i"  pic$n.png
((n++))
done

 

 

Avatar_small
LiYanrui 说:
2009年3月28日 23:36

@LiYanrui: 不好意思,写错了。需要将代码中的 "*.ai" 改成 "*.pdf",上面那个 bash 脚本是我用来转换 ai 文件的。

太云 说:
2009年3月28日 23:50

@LiYanrui: 非常感谢您的热心回答。很不好意思:我的操作系统是windows xp,电脑水平较差,不知道这个bash脚本怎么运行。

太云 说:
2009年3月29日 00:20

对了,我的XP上有个Cygwin,我把bash存为my.sh,然后在Cygwin进入所在文件夹下,在里面敲入./my.sh,出错信息如下:
./my.sh: line 3: syntax error near unexpected token '$'do\r''
'/my.sh: line 3: 'do
不知如何解决?

Avatar_small
LiYanrui 说:
2009年3月29日 00:26

@太云: 呃,这个网站是讨论 linux 的。Windows 里,可以用 dos 批处理,不过我不会用。至于 Cygwin,我也不清楚。抱歉啊

太云 说:
2009年3月29日 02:24

@LiYanrui: 仍然非常感谢!问题解决了,原来是我的编辑器里面换行符是\r\n,而不是标准的\n


登录 *


loading captcha image...
(输入验证码)
or Ctrl+Enter