Canvas 如何从.svg图像中获取调整大小的ImageElement?
我需要将一个图像绘制到画布中,该画布是从.svg获得的。 我目前正在使用以下代码:Canvas 如何从.svg图像中获取调整大小的ImageElement?,canvas,svg,dart,Canvas,Svg,Dart,我需要将一个图像绘制到画布中,该画布是从.svg获得的。 我目前正在使用以下代码: active_toolbutton=query(“#${event.target.id}”).clone(false); 激活的工具按钮。宽度=100; 激活的工具按钮。高度=100; 上下文。drawImageScaled(活动的工具按钮、placeX、placeY、, 活动工具按钮。宽度,活动工具按钮。高度); 这项工作与Chrome有关,但与Firefox无关,有更好的方法吗?经过一些研究,我找到了答案。
active_toolbutton=query(“#${event.target.id}”).clone(false);
激活的工具按钮。宽度=100;
激活的工具按钮。高度=100;
上下文。drawImageScaled(活动的工具按钮、placeX、placeY、,
活动工具按钮。宽度,活动工具按钮。高度);
这项工作与Chrome有关,但与Firefox无关,有更好的方法吗?经过一些研究,我找到了答案。没有标准行为可以定义这一点。svg图像应该使用标量功能重新缩放。事实上,在某些情况下(例如CSS背景),不同的浏览器处理缩放的方式不同 我找到了一个解决方案,使用第三方javascript库将SVG呈现到画布中。我已经使用了,与dart javascript interopt librar 守则:
这听起来像是dart:html中的一个bug。请在www.dartbug.com/newDone上填写所有详细信息。我从未听说过
context.drawImageScaled
context.drawImage
完全按照您的要求执行,并采用相同的参数?也许这是通过dart实现的?似乎drawImage()是一种标准的HTML5画布方法。
import 'package:js/js.dart' as js;
...
active_toolbutton = new CanvasElement();
active_toolbutton.width = 100;
active_toolbutton.height = 100;
var options = js.map({ 'ignoreMouse:': true,
'ignoreAnimation': true,
'ignoreDimensions': true,
'scaleWidth': 100,
'scaleHeight': 100});
js.context.canvg(active_toolbutton, event.target.src, options);