问题是在画布上使用可视控件时更新实际的object.width, object.height
并保留object.scaleX = 1
和object.scaleY = 1
。
问题的根源是在使用控件操作对象时,fabric.js会更改对象的比例,以及缩放路径的笔划,我希望它始终具有相同的宽度。
所以我想让它更像Adobe Illustrator,而不是缩放笔画的宽度以及rectalngular的宽度,例如。
答案 0 :(得分:9)
我找到了一个以不同方式提出的问题的解决方案:
Rect with stroke, the stroke line is mis-transformed when scaled
我们的想法是使用新的比例因子计算新的可能宽度和高度,设置新尺寸并将比例因子重置为1.
以下是该答案的代码示例:
el.on({
'scaling': function(e) {
var obj = this,
w = obj.width * obj.scaleX,
h = obj.height * obj.scaleY,
s = obj.strokeWidth;
obj.set({
'height' : h,
'width' : w,
'scaleX' : 1,
'scaleY' : 1
});
}
});
答案 1 :(得分:3)
从Fabric.js 2.7.0版开始,您可以在对象上启用systemctl restart httpd.service
属性,该属性将始终与为笔划宽度输入的确切像素大小匹配。
strokeUniform