一、前言
- 后文的解释比较啰嗦,这里先上总结论:下载magick软件,在命令行使用下述两行代码:
mogrify -density 120 -format png *.eps
mogrify -transparent white *.png
可以将工作目录下的所有eps导出为png图片,并且将白色背景变成透明背景。 - ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件,其大多数功能的使用都来源于命令行工具。在python2还有对应的库PythonMagick。参考资料:
① ImageMagick官网
② 中文官网
③ 中文教程 - 首先下载并安装magick,
二、使用convert处理单张图片
- 下载测试文件a.eps
- convert基本用法
- 可以设置-density参数,控制输出的分辨率,这里-density的单位与illustrator导出png的ppi相同,默认值为72。为了防止图片太小,这里进行一定的放大,设成120:
convert -density 120 a.eps a.png
,输出的a.png原尺寸为132×26的话,现在放大120/72,变为220×43。注意这里的参数调用顺序,-density 120
不能放到a.eps
后面。 - 接上一步,使用
-transparent white
可以把白色背景变透明:convert -transparent white a.png a.png
。 - 如果要批量将eps转为png,
convert
的导出名称规则是采用数字自动编号,无法维持原文件名。使用*作为导出通配符会报错,只能使用%02d等数字格式。例如:
三、改用mogrify命令批量处理图片
- 所以批量处理的时候,推荐用功能类似的
mogrify
代替convert
,其与convert
的主要区别是用于原地操作。
因为windows自带一个C:\Windows\System32\convert.exe工具,这也是为了防止调用名称冲突。 - 替换单张图片的语法,结合-format参数:
mogrify -density 120 -format png a.eps
,注意千万千万不要用mogrify -density 120 a.eps a.png
,这不仅不会生成a.png,还会破坏原始a.eps文件,把矢量图变成位图。 - 批量把eps替换为png,且把白色背景换成透明背景的代码:
mogrify -density 120 -format png *.eps
mogrify -transparent white *.png - 其他自带支持的颜色: https://www.themagickalcat.com/Articles.asp?ID=241
- 使用自定义颜色,用双引号包起rgb值即可:
mogrify -transparent "rgb(255,255,255)" *.png