在撰写 在OS X安装Docker 文档时,发现Docker文档使用的图片是采用SVG(矢量图)。由于这个图形格式是XML文件,我也想转换成PNG图片,所以就google了一下处理的方法。
SVG(Scalable Vector Graphics)是一种基于XML的二维矢量图形格式并且支持交互和动画。SVG格式是W3C组织1999年开发的开放标准。由于SVG是通过XML文本文件定义的,所以可以搜索、索引、脚本化和压缩。作为XML文件,SVG图形可以由任何文本编辑程序创建和修改,不过,通常是使用绘图软件。所有主流的web浏览器都支持SVG图形。
安装svg2png
nvm use 5.6.0
npm install svg2png -g
svg2png
要求使用node.js 5.x,我在开发环境使用nvm管理node.js版本,所以这里切换使用v5.6.0
使用PlantomJS来进行SVG转换PNG
const pn = require("pn"); // https://www.npmjs.com/package/pn
const svg2png = require("svg2png");
pn.readFile("source.svg")
.then(svg2png)
.then(buffer => fs.writeFile("dest.png", buffer))
.catch(e => console.error(e));
Node.js要求
svg2png
使用了最新的ES2015
特性,所以要求使用最新版本的Node.js,即只支持Node.js 5.x系列。
svgexport
svgexport是另外一个Node.js模块和命令行工具,可以将SVG文件输出为PNG和JPEG,也是使用PhantomJS来渲染SVG文件。
安装方法
npm install svgexport --save
使用方法
svgexport <input file> <output file> <options>
<options> [<format>] [<quality>] [<input viewbox>] [<output size>] [<resize mode>] [<styles>]
svgexport input.svg output.png 1.5x