用纯JavaScript将服务器上的SVG呈现给PNG
标题说明了这一点。 我知道Imagemagick可以做到这一点,但让我们假设我在一个只允许使用JavaScript的云服务器( 咳嗽 节点 咳嗽 )。 事实上,这不是一件坏事。
最近听说javascript里面有h.264渲染器,所以png不是那么遥不可及?
一个PNG 渲染器是不是很远,实际上它已经存在: http : //devongovett.github.com/png.js/
这里的问题是,你将需要一个“假帆布”实现,不绘制任何东西,只是build立一个像素数组,然后可以保存到PNG。 没有这样的事情,因为这种情况除了这种情况外没用
即:svg – >位图渲染器(伪造canvas) – > rgb数组 – > png文件
某些托pipe提供程序将允许您声明系统级别的依赖项,或者有一些默认值可用。 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。 问节点工的人,很有可能他们有一个graphics库可用。
不幸的是,JavaScript中的所有高级渲染都是通过HTML5canvas的浏览器实现的。 NodeJS缺less这些function。
有NodeJS的扩展,让你做image processing,但你只能使用这些如果你的主机安装它们。
有svg2png,它使用无头浏览器呈现sng到png。