使用ImageMagick将eps批量导出为透明png图片

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/DaiHaoC83E15/article/details/79501164

一、前言

  1. 后文的解释比较啰嗦,这里先上总结论:下载magick软件,在命令行使用下述两行代码:
    mogrify -density 120 -format png *.eps
    mogrify -transparent white *.png

    可以将工作目录下的所有eps导出为png图片,并且将白色背景变成透明背景。
  2. ImageMagick (TM) 是一个免费的创建、编辑、合成图片的软件,其大多数功能的使用都来源于命令行工具。在python2还有对应的库PythonMagick。参考资料:
    ImageMagick官网
    中文官网
    中文教程
  3. 首先下载并安装magick
    Markdown

二、使用convert处理单张图片

  1. 下载测试文件a.eps
  2. convert基本用法
    Markdown
  3. 可以设置-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后面。
  4. 接上一步,使用-transparent white可以把白色背景变透明:convert -transparent white a.png a.png
  5. 如果要批量将eps转为png,convert的导出名称规则是采用数字自动编号,无法维持原文件名。使用*作为导出通配符会报错,只能使用%02d等数字格式。例如:
    Markdown

三、改用mogrify命令批量处理图片

  1. 所以批量处理的时候,推荐用功能类似的mogrify代替convert,其与convert的主要区别是用于原地操作。
    因为windows自带一个C:\Windows\System32\convert.exe工具,这也是为了防止调用名称冲突。
  2. 替换单张图片的语法,结合-format参数:mogrify -density 120 -format png a.eps,注意千万千万不要用mogrify -density 120 a.eps a.png,这不仅不会生成a.png,还会破坏原始a.eps文件,把矢量图变成位图。
  3. 批量把eps替换为png,且把白色背景换成透明背景的代码:
    mogrify -density 120 -format png *.eps
    mogrify -transparent white *.png
  4. 其他自带支持的颜色: https://www.themagickalcat.com/Articles.asp?ID=241
  5. 使用自定义颜色,用双引号包起rgb值即可:

    mogrify -transparent "rgb(255,255,255)" *.png

猜你喜欢

转载自blog.csdn.net/DaiHaoC83E15/article/details/79501164