将具有滤镜效果的 SVG 渲染为 PNG

Render an SVG with filter effects to PNG

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

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

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

我尝试过的事情:

导入到 Adob​​e Illustrator

svg2png

Imagemagick

Inkscape

我现在忘记的其他命令行工具和程序。基本上你可以用 Google.

找到任何东西

我目前正在追求但坚持的道路:

知道 Chromium 可以很好地渲染 SVG 并且它是开源的,我想我会下载 Chromium 依赖于渲染 SVG 的库(Skia,https://sites.google.com/site/skiadocs/) and use it to output a PNG. So far I've succeeded in installing Skia and running the very first example. I've found an example that renders an SVG (https://code.google.com/p/skia/source/browse/trunk/samplecode/SampleSVG.cpp?r=875),但没有成功 运行 它在我的 OSX 机器上安装了 XCode 和命令行工具的最新更新。该示例的修改版本(带有 gyp 文件)输出 PNG 会很棒。

其他可行的想法:

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

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

这似乎工作得很好:

webkit2png -F blue.svg -o rendered

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

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