我想在布料帆布上使用套索裁剪。 现在我可以在画布上绘制路径了。 但我不知道如何切出背景图像的路径。 有什么方法可以保存剪切图像吗? 这是我的代码
const canvas = document.getElementById('c');
const ctx = canvas.getContext('2d');
const img = document.createElement('IMG');
const base64data = canvas.toDataURL("image/jpeg")
img.onload = function() {
const OwnCanv = new fabric.Canvas('c', {
isDrawingMode: true
});
canvas.width = img.width;
canvas.height = img.height;
const imgInstance = new fabric.Image(img, {
async: false,
left: 0,
top: 0,
lockMovementX: true,
lockMovementY: true
});
OwnCanv.add(imgInstance);
OwnCanv.freeDrawingBrush.color = "purple"
OwnCanv.freeDrawingBrush.width = 5
OwnCanv.on('path:created', function(option) {
const path = option.path;
OwnCanv.isDrawingMode = false;
OwnCanv.remove(imgInstance);
OwnCanv.remove(path);
OwnCanv.clipTo = function(ctx) {
path.render(ctx);
};
OwnCanv.add(imgInstance);
});
}
img.src = base64data
}
答案 0 :(得分:0)
你可以这样做:
OwnCanv.on('path:created', function(option) {
var path = option.path;
imgInstance.clipTo = function(ctx) {
//save context state
ctx.save();
//reset context tranformation matrix
ctx.setTransform(1,0,0,1,0,0);
//render the path
path.render(ctx);
//restore context state
ctx.restore();
};
OwnCanv.renderAll();
});