javascript - FabricJS:将 SVG 添加到 Canvas 但在导出时不可见

标签 javascript canvas svg fabricjs

我正在尝试使用 FabricJS 将 SVG 添加到 Canvas 对象,然后将其导出到数据 url 图像以让用户保存图像,箭头显示在 Canvas 中,但是当我调用 toDataURL 方法并检查时图像,它只是一个空图像。我还检查了 toSVG() 方法来检查下垂是否存在,但它不在导出的 SVG 中。

我创建了一个 fiddle来证明这一点。

在示例中,单击按钮并调用 canvas.toDataURL() 时会显示箭头。并在我的浏览器中检查它,显示一个空图像。调用canvas.toSVG()还返回一个不带箭头 svg 的 SVG,如 fiddle 中所示。

有人能指出我正确的方向吗?

提前致谢!

最佳答案

您需要将调用放在回调中,否则它们会在数据加载之前发生,例如

  fabric.loadSVGFromString(svgString, function(results, options) {
    var arrow = results[0];
    canvas.add(arrow);
    console.log(canvas.toDataURL());
    console.log(canvas.toSVG()); 
  });

或者as a fiddle

关于javascript - FabricJS:将 SVG 添加到 Canvas 但在导出时不可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143473/

相关文章:

javascript - 如何向 append 添加淡入淡出?

具有负值和正值的 jQuery 堆积柱形图

android - Vector Asset Studio 正在将彩色 .svg 文件导入为黑白

html - 在 map 上绘制飞行路线是否有任何标准程序?

javascript - Moment.js 格式化不正确的日期

javascript - ES6类似map的功能

javascript - 如何使用React中的一个函数处理数组中的多个输入

javascript - HTML Canvas if/else

javascript - 粘贴后绘制图像

javascript - 你如何将属性发送到 svg 中的 javascript 函数