svg图像点播

我有JavaScript代码,当一个人登陆其中一个页面时,dynamic生成svg图像标签。 我使用d3库来帮助制作图像。 唯一的问题是,D3是不完全IE浏览器兼容,我想生成一个.png,JPG,GIF或任何其他图像文件基于SVG文件。 有没有一种已知的方法来做到这一点? 服务器端代码是基于PHP的,我们使用node.js和render.js来处理大量的dynamic内容。

我正在使用ImageMagick将SVG图像转换为PNG图像。 这工作得很好。

如何做到这一点的一个简单的例子:

 exec('/usr/bin/convert /path/to/image.svg /path/to/output_image.png'); 

我用这个很成功的处理用libqrencode制作的QR码到不同的大小和颜色。

首先,您需要在服务器端使用DOM实现,以获得在客户端呈现的svg。为此,我们使用带有node.js的jsdom。 使用这个,你可以在服务器端渲染D3,并获得服务器上的svg,然后将其转换为任何你喜欢的格式。

这是如何的链接 。

一旦你得到了SVG和PNG,然后使用modernizer.js

1)使用Modernizr检查浏览器的兼容性。

2)然后根据兼容性加载SVG或PNG。

示例(JS解决scheme):

 if (!Modernizr.svg) { $("#logo").css("background-image", "url(fallback.png)"); } 

示例(CSS解决scheme):

 .no-svg #logo { background-image: url(fallback.png); }