在服务器上使用纯JavaScript将SVG渲染为PNG
Render SVG to PNG on the server with pure JavaScript
标题说明了这一点。我知道Imagemagick可以做到这一点,但是让我们假设我在一个只允许使用JavaScript的云服务器上(coughnodestercough)。事实上,这并不是一件坏事。
最近我听说javascript中有h.264渲染器,所以png不是那么牵强吗?
PNG 渲染器并不牵强,事实上它已经存在:http://devongovett.github.com/png.js/
这里的问题是,你需要一个"假画布"实现,不画任何东西,只是建立一个像素数组,然后可以保存为PNG。没有这样的东西,因为它没什么用,除了这种情况…
。: SVG ->位图渲染器(伪画布)-> RGB数组-> PNG文件
一些主机提供程序允许你声明系统级依赖,或者有一些默认值可用。Gm可以很好地用于此目的:
gm = require('gm')
gm('image.svg').write('image.png', function(err){
if (!err) console.log('image converted.')
})
你显然可以在http://no.de机器上安装imagemagick/graphicsmagick, dotcloud也有IM可用。问一下nodester的家伙,他们很可能有一个可用的图形库。
不幸的是,JavaScript中可用的所有高级呈现都是通过HTML5画布的浏览器实现的。NodeJS缺乏这些特性。
NodeJS有一些扩展可以让你做图像处理,但是你只能在你的主机安装了它们的情况下使用它们。
- http://ajaxorg.posterous.com/canvas-api-for-nodejs
- https://github.com/rsms/node-imagemagick(只是需要imagemagick已安装)
有svg2png,它使用无头浏览器将svg渲染为png。
https://github.com/domenic/svg2png https://www.npmjs.com/package/svg2png相关文章:
- 将SVG下载为PNG图像
- 从画布上的SVG导出PNG
- 固定分辨率的大 svg 到 png
- 我如何将多个 svg 隐藏到一个 png 中,因为它们在 html 上
- 在Web Worker中将SVG转换为PNG
- 使用PHP将png/svg导出为单个png文件
- 当使用canvg将Highchart SVG转换为PNG时,所有文本都会出现两次——如何解决
- 在VB.net/C#或Objective-C上将JPEG或PNG转换为SVG格式
- 如何将SVG节点转换为PNG并下载给用户
- 阿巴普 :将 svg 转换为 png
- 使用 SVG 渲染引擎将 svg 转换为 png 时出现异常
- 图像(jpeg 和 png)文件如何在 SVG 文件中格式化
- 将用Javascript绘制的外部SVG文件导出为PNG图像
- 将使用 D3js 创建的 SVG 转换为 PNG
- SVG 到 PNG 下载器 PHP
- 在多边形中包含 png/svg
- 在客户端将 svg 转换为 png
- 通过画布从 svg 或 svg 输出 300 张具有正确文件名的 png 图像
- SVG文件 :如何使用Inkscape将PNG文件转换为SVG文件后获取路径标记数据
- 将带有图像标签的 Svg 转换为 PNG