在FabricJS中导入画布图像时如何缩放文本阴影偏移?

时间:2016-11-07 08:20:26

标签: javascript html5-canvas fabricjs todataurl

我使用FabricJS和Text Shadow偏移不适用于将图像渲染为画布上的显示。

文本在画布上显示如下

enter image description here

但保存画布图像后,显示如下。

enter image description here

阴影偏移减少了。

我的阴影偏移功能如下

function textShadowOffsetChange() {
    var val = $('#text-shadow-offset-slider').slider('option','value');
    if(document.getElementById("text-shadow-set").checked && isText()) {
        currentElement.setShadow({
            color: '#000',
            blur: 5,
            offsetX: val,
            offsetY: val
        });
        canvas.renderAll();
    }
}

我通过保存功能实现这一点。因为我使用倍增器并在保存时缩放图像。我的保存功能如下?

var MaskImg = canvas.toDataURL({
       format: 'png',
       multiplier: multi,
       left: (canvas.width - maskWidth)/2,
       height: maskOriHeight/multi,
       width: maskOriWidth/multi
});

我认为乘数不会影响阴影偏移。我怎么解决这个问题?

Sample Fiddle

1 个答案:

答案 0 :(得分:0)

它看起来像Fabric.JS中的一个错误,已经在1.6.6版本中得到修复。只需更新到v1.6.6即可正常工作,请参阅此处:http://codepen.io/anon/pen/aBvpaK

他们似乎已经改变了v1.6.6中的Canvas构造函数,所以现在它获得了对DOM元素的引用,如下所示:

var canvas = new fabric.Canvas(document.getElementById('c'));