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); }