javascript - 如何将 SVG 放入 Fabric.js 中的父对象中

标签 javascript canvas svg fabricjs

如何在 Fabric.js loadSVGFromString 方法中设置 SVG 大小? 我找不到任何适合父对象 (groupSVGElements) 的解决方案。还检查了文档,但我看到他们总是使用带有 SVG 的 Canvas 尺寸。

示例:http://codepen.io/bajzarpa/pen/wJOOdB?editors=1010

最佳答案

由于您当前的 SVG 元素不包含任何 widthheight 属性,因此您需要使用 viewBox.baseVal.widthviewBox.baseVal.height 分别获取其宽度高度,并相应地设置它以适合父对象。

// get the svg's width and height
let svg = document.querySelector('#testvg');
let svgWidth = svg.viewBox.baseVal.width;
let svgHeight = svg.viewBox.baseVal.height;

// set to fit into a parent object (canvas)
graphic.set({
    top: 5,
    left: 5,
    width: svgWidth,
    height: svgHeight,
    scaleX: (canvas.width - 10) / svgWidth,
    scaleY: (canvas.height - 10) / svgHeight
 });

WORKING DEMO on CodePen

关于javascript - 如何将 SVG 放入 Fabric.js 中的父对象中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43210293/

相关文章:

javascript - 使用 javascript 在页面加载时显示第一个选项卡

c# - 如何以编程方式展平 SVG 文件中的变换?

javascript - Karma 单元测试 jsonp 回调中的延迟 promise (stripe.js)

javascript - bootstrap - 工具提示内具有 onclick 功能的按钮

android - 如何使 Canvas 绘图区域在 android 中透明?

javascript - 如何使用js绘制基于方程的图形

javascript - 如何使用键盘旋转 Canvas 框?

java - 将临时 .jpg 文件保存到计算机

svg - SVG、多条小路径和一条大路径哪个更有效?

javascript 缺少语句的问题