Javascript fabricjs在剪裁画布后获取图像,并将其设置为新的背景图像

Javascript fabricjs在剪裁画布后获取图像,并将其设置为新的背景图像,javascript,canvas,fabricjs,Javascript,Canvas,Fabricjs,我制作了一张画布,并在上面添加了一个图像。它就像画布上的背景图像一样工作。然后我剪切画布以获得画布的特定部分,就像裁剪一样。裁剪后,我想要裁剪的部分,并将其设置为新的背景图像 这是我尝试过的,但我无法将裁剪部分设置为画布上的新背景图像。我得到的是同样的旧画布,裁剪部分是透明的 function crop(url, name, left, top, width, height, callback) { var c = document.createElement('canvas')

我制作了一张画布,并在上面添加了一个图像。它就像画布上的背景图像一样工作。然后我剪切画布以获得画布的特定部分,就像裁剪一样。裁剪后,我想要裁剪的部分,并将其设置为新的背景图像

这是我尝试过的,但我无法将裁剪部分设置为画布上的新背景图像。我得到的是同样的旧画布,裁剪部分是透明的

function crop(url, name, left, top, width, height, callback) {
    var c = document.createElement('canvas')
    var id = "canvas_" + name
    c.id = id
    var canvas = new fabric.Canvas(id)

    fabric.Image.fromURL(url, function(oImg) {

        oImg.set({
            selectable:false,
        })
        canvas.setDimensions({width:oImg.width, height:oImg.height})
        canvas.add(oImg)
        canvas.clipTo = function (ctx) {
            ctx.rect(left, top, width, height)
            console.log(ctx)
        };
        canvas.centerObject(oImg)
        canvas.renderAll()
        var img = canvas.toDataURL('image/png')
        console.log(img)
        callback(img)
    }, {crossOrigin: "Anonymous"})
}
在这里,我希望我的画布返回与裁剪区域作为背景图像


需要帮助

这是一种重复吗?你有一个JSFIDLE吗?另外,假设画布的大小保持不变,看起来您正在尝试使用裁剪来缩放背景图像。你试过缩放而不是裁剪吗?