关于Html5的svg转canvas问题

weixin_38068996 2017-09-12 08:11:33
svg转canvas怎么包含外部样式文件(css)
以下是html
<!DOCTYPE HTML>
<html>
<body>
<link rel="stylesheet" type="text/css" href="./style.css" />
<div id="svgTest">
<svg width="100px" height="100px">
<circle class="circle" cx="50" cy="50" r="40" stroke="black" stroke-width="2"/>
</svg>
</div>
<canvas id="myCanvas" width="100px" height="100px"></canvas>
<button onclick="svgToCanvas()">Test</button>
<script>
function svgToCanvas() {
var svgString = new XMLSerializer().serializeToString(document.querySelector('svg'));
var img = new Image();
var svg = new Blob([svgString], { type: "image/svg+xml;charset=utf-8," });
var DOMURL = self.URL || self.webkitURL || self;
var url = DOMURL.createObjectURL(svg);
img.src = url;
img.onload = function () {
var canvas = document.getElementById("myCanvas");
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, 100, 100);
}
};
</script>
</body>
</html>
以下是css
.circle{fill:red}
效果:


将svg,circle的class="circle"换成fill="red"则可以加载
<circle fill="red" cx="50" cy="50" r="40" stroke="black" stroke-width="2"/>
效果:

由于工程比较大,图形很多,必须要用class。那么svg转canvas怎么包含css样式


...全文
36 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复

476

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧