如何将FabricJS画布中心背景图像?

mik*_*ner 4 javascript canvas fabricjs

使用setBackgroundImage()将backgroundImage添加到画布时,我无法找到将背景图像居中的方法.我需要将它居中,使其与画布中的中心路径对齐.

文档http://fabricjs.com/docs/fabric.StaticCanvas.html#setBackgroundImage显示了各种信息,但似乎没有指定背景图像相对于画布的位置.

    canvas.setOverlayImage('http://fabricjs.com/assets/honey_im_subtle.png',
        canvas.renderAll.bind(canvas), {
            scaleX:1,
            scaleY:1,
            top: 0,
            left: 0,
            originX: 'center',
            originY: 'center'
    });
Run Code Online (Sandbox Code Playgroud)

这会将图像居中放在画布的左上角.我现在如何指定画布上的原点应该是中心/中心而不是上/下?

更新:是否有一个方法,如果调整画布大小,将动态更新?希望使用顶部和左侧的百分比值,但这似乎不起作用.

谢谢!

mik*_*ner 10

我能够找到一个有效的解决方案,但如果调整画布大小,它将不会自动更新:

var center = deviceCanvas.getCenter();
canvas.setOverlayImage('http://fabricjs.com/assets/honey_im_subtle.png',
    canvas.renderAll.bind(canvas), {
        scaleX:1,
        scaleY:1,
        top: center.top,
        left: center.left,
        originX: 'center',
        originY: 'center'
});
Run Code Online (Sandbox Code Playgroud)