使用滤镜效果渲染SVG到PNG

时间:2015-02-11 01:02:48

标签: svg graphics 2d skia

我想将我创建的SVG呈现给高分辨率(600 DPI)PNG。此SVG具有滤镜效果,特别是高斯模糊。

理想情况下,渲染可以通过命令行完成。

我知道SVG是可渲染的,因为你可以在Chrome / Chromium中打开它,我希望看到的输出是

我尝试过的事情:

导入Adobe Illustrator

svg2png

ImageMagick的

Inkscape中

我现在忘记的其他命令行工具和程序。基本上你可以在谷歌找到任何东西。

我追求的当前路径但坚持:

知道Chromium可以很好地渲染SVG并且它是开源的,我想我会下载库Chromium依赖于渲染SVG(Skia,https://sites.google.com/site/skiadocs/)并使用它来输出PNG。到目前为止,我已经成功安装了Skia并运行了第一个示例。我找到了一个示例,它呈现了一个SVG(https://code.google.com/p/skia/source/browse/trunk/samplecode/SampleSVG.cpp?r=875),但是在我的OSX机器上没有使用XCode和命令行工具的最新更新成功运行它。该示例(带有gyp文件)的修改版本输出PNG将是惊人的。

其他可能有用的想法:

从Chrome获取像素数据(我该怎么做?由于图像的分辨率,简单的截图是不够的。我还想要一个可编写脚本,可重复的过程。)

使用可以渲染SVG的其他图形库。也许这来自其他网络浏览器,也许不是。

1 个答案:

答案 0 :(得分:2)

这似乎很有效:

webkit2png -F blue.svg -o rendered

-F表示生成Full分辨率PNG且没有缩略图,-o指定输出文件名为rendered-full.png

enter image description here

我缩小了尺寸以适应Stack Overflow,但显示的命令实际上提供了全分辨率的2880x2880图像。