Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Canvas 如何从.svg图像中获取调整大小的ImageElement?_Canvas_Svg_Dart - Fatal编程技术网

Canvas 如何从.svg图像中获取调整大小的ImageElement?

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无关,有更好的方法吗?经过一些研究,我找到了答案。

我需要将一个图像绘制到画布中,该画布是从.svg获得的。 我目前正在使用以下代码:

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