javascript - 给 svg 对象添加描边

标签 javascript canvas svg border fabricjs

大家好,

我试图在织物中给一个 svg 对象一个围绕边界框的描边。不幸的是

obj.set({
  'stroke': 'red',
  'strokeWidth': 2
});

即使更新后也无法使用。

obj.setCoords();
canvas.renderAll();

所有其他属性(如填充或 Angular )似乎都有效。有人遇到过这个问题并且知道如何解决吗?

已经谢谢你了 塞巴斯蒂安

编辑: 这就是我加载 svg 的方式:

var group = [];    
var loadedObjects;

fabric.loadSVGFromURL(

            'bla.svg', 

            function(objects, options) {
                loadedObjects = new fabric.Group(group);
            }, 

            function(item, object) {
                object.set('id', item.getAttribute('id'));
                group.push(object);
            }
);

最佳答案

fabricjs 不支持组或路径组的边框绘制。 您可以做的是将 svg 作为路径组加载。 加载后创建一个具有相同宽度和高度的矩形,给他相同的顶部和左侧。抚摸矩形并将它们组合在一起:

fabric.loadSVGFromURL(

            'bla.svg', 

            function(objects, options) {
                var svg = fabric.util.groupSvg(objects, options);
                var rect = new fabric.Rect({width:svg.width, height: svg.height, top:svg.top, left: svg.left, stroke: 'red', strokeWidth: 5});
                group = new fabric.Group([svg, rect]);
                canvas.add(group);
            }
);

关于javascript - 给 svg 对象添加描边,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31549523/

相关文章:

flutter - Flutter-SVG文件的笔触变得更细

javascript - 将 Canvas 图像转换为 toDataURL() 时没有滤镜效果

svg - textArea SVG 元素未出现在 FireFox 中

javascript - JavaScript 中的转义字符

typescript - TypeScript项目中如何使用OffscreenCanvas

javascript - 在 Canvas 上操纵面部细节

java - Android 在 Canvas 上操作图像 - 使用触摸、移动、放大/缩小、缩放

javascript - MVC 远程验证后调用函数

javascript - 从 javascript 重定向到 Action

javascript - 如何制作在两种颜色之间切换的按钮?