将 jQuery SVG 转换为图像
我正在使用 jQuery SVG 插件生成 SVG 对象。问题是如何在脚本中将其转换为图像。
我的脚本如下:
<html>
<head>
<script type="text/javascript" src="jquery-latest.min.js"></script>
<script type="text/javascript" src="jquery.svg.js"></script>
<script type="text/javascript">
$(function(){
$("#draw").click(function(){
$('#svg_container').svg();
svg = $('#svg_container').svg('get');
svg.clear(true);
svg.circle(200, 220, 150, {fill: "red", stroke: "blue", strokeWidth: 5});
alert(svg.toSVG()); //this prints svg source of the generated image, i.e. circle
});
});
</script>
</head>
<body>
<div id="svg_container" style="position: absolute; left: 100px; top: 100px; width: 400px; height: 400px; border: thin solid #4297D7;"></div>
<button id="draw">Draw</button>
</body>
</html>
您能告诉我如何将此 svg 转换为任何类型的图像吗?
提前致谢。
更新
问题已解决,我已发布解决方案作为答案,请检查这里。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这看起来很难做到。
我发现这个项目试图做到这一点:
http://www.svgopen .org/2010/papers/62-From_SVG_to_Canvas_and_Back/index.html
我还发现一个项目试图为 Canvas 构建 SVG 渲染器,但它还远未完成。
他们确实使用了一种解决方案,通过服务器将 SVG 渲染为 PNG,这可能是目前唯一真正有效的解决方案。
This seams to be very hard to do.
I found this project that attempts to do this:
http://www.svgopen.org/2010/papers/62-From_SVG_to_Canvas_and_Back/index.html
I also found one project that tried to build a SVG renderer for Canvas but it was far from complete.
They did use a solution to go by the server and have the SVG rendered to PNG there, that might be the only really working solution right now.
我终于解决了将SVG转换为图像文件的问题。如果有人感兴趣,这里是解决方案:
svg.php 的内容如下:
您可以从 jQuery 官方 网站和来自此处的 jQuery SVG 库。
希望这对那些希望从程序中将 SVG 转换为图像的人有所帮助。
最好的,
巴赫蒂约尔
I have finally solved the problem of converting SVG to image file. Here is the solution, if anybody is interested in:
The content of svg.php is following:
You can download jQuery library (jquery-latest.min.js) from jQuery official web site and jQuery SVG library from here .
Hope this will help to many of you who are looking toward converting SVG to image right from your program.
Best,
Bakhtiyor