gpt4 book ai didi

javascript - Fabricjs:在 Canvas 上更新 SVG

转载 作者:行者123 更新时间:2023-11-30 06:23:21 24 4
gpt4 key购买 nike

我正在使用 fabricjs 1.6.4,我想用新的更新现有的 svg。我正在使用此代码添加新的 SVG:

fabric.loadSVGFromURL(url, function (objects, options) {
var image = fabric.util.groupSVGElements(objects, options);
image.name = 'sticker';
canvas.add(image);
image.scaleToHeight(100);
image.center();
image['selectable'] = false;
image['evented'] = false;
image.setCoords();
canvas.renderAll();
});
}

如何用新的 SVG 替换现有的 SVG。我在图像中做了一些与此相关的事情,但我无法在 SVG 中复制。这是图像的代码:

$scope.fillImage = function(src) {
fabric.Image.fromURL(src, function(img) {
var object = canvas.getActiveObject();
object._element.src = src;
canvas.renderAll();
});
}

我需要这样的东西。请帮忙。

最佳答案

您已经有了变量image,只需将其设为全局变量,您可以在添加之前将其删除...
这是一个示例:

var image;
var canvas = new fabric.Canvas('canvas');
var url = "http://swagger-net-test.azurewebsites.net/api/SvgImage?"

function callback(objects, options) {
if (image) canvas.remove(image);
image = fabric.util.groupSVGElements(objects, options);
image.name = 'sticker';
canvas.add(image);
image.scaleToHeight(60);
image.center();
image.setCoords();
canvas.renderAll();
}

fabric.loadSVGFromURL(url + "color=red", callback)
setTimeout(
function() {
fabric.loadSVGFromURL(url + "color=blue", callback)
},
3000
);
<canvas id="canvas" width="180" height="180"></canvas>

<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/2.3.4/fabric.min.js"></script>

关于javascript - Fabricjs:在 Canvas 上更新 SVG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51835021/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com