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

时间:2014-05-03 19:21:01

标签: 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'
    });

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

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

谢谢!

1 个答案:

答案 0 :(得分:9)

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

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'
});