【发布时间】:2019-06-11 17:36:57
【问题描述】:
在fabric.js中修改对象后如何获取文本对象字体大小?
下面是我的代码。
var text = new fabric.Text(imgText, {
left: 10,
top: 5,
fontSize: 15,
fontFamily: 'Verdana',
fill: 'white'
});
text.scaleToWidth(canvas.width * 0.5);
text.setControlsVisibility(canvasConfig);
canvas.add(text);
canvas.renderAll();
var objects = canvas.getActiveObject();
var obj = objects;
if (!obj) {
return;
}
//console.log(obj.get('fontSize') *= obj.scaleX);
var angle = obj.get('angle');
var objWidth = obj.get('width') * obj.scaleX;
var objWidthPercent = objWidth / canvas.width * 100;
var objHeight = obj.get('height') * obj.scaleY;
var objHeightPercent = objHeight / canvas.height * 100;
var bound = obj.getBoundingRect();
var objLeft = obj.get('left') / canvas.width * 100;
var objTop = obj.get('top') / canvas.height * 100;
var newfontsize = obj.fontSize * obj.scaleX;
上面我将默认 FontSize 设置为 15。然后我修改对象我可以得到正确的 Height, Width, Left, Top, 但我无法得到 FontSize。
在后端,我设置了如下截图所示的图像和文本。
在前端我得到如下截图。
前端图像和文本的以下样式。
element.style {
left: 64.37%;
top: 14.54%;
width: 28.25%;
height: 14.37%;
font-size: 63.58px;
color: #E346FF;
font-family: Times New Roman;
position: absolute;
max-width: 100%;
z-index: 996;
max-height: 100%;
}
element.style {
left: 56.5%;
top: 0.81%;
width: 42.86%;
height: 42.86%;
max-width: 100%;
max-height: 100%;
position: absolute;
z-index: 995;
display: block;
background-image: url(http://10.16.16.101/LabelExtension/pub/media/labelimageuploader/images/image/o/r/orange_38.png);
background-position: center;
background-repeat: no-repeat;
background-size: contain;
}
当我添加下面的代码时,它运行良好,但后端对象变得模糊。
this.canvas.setHeight(300);
this.canvas.setWidth(240);
this.canvas.backgroundColor = '#E8EEF1';
this.canvas.setDimensions({width: '480px', height: '600px'}, {cssOnly: true});
【问题讨论】:
-
您能否将修改对象并尝试获取 fontSize 的代码包含在内?
-
@shkaper 检查我更新的问题,我可以得到高度、宽度、左侧、顶部。但找不到字体大小。
-
我不确定您在该注释行中要做什么。
obj.get('fontSize')确实应该返回一个数字。console.log(obj.get('fontSize') *= obj.scaleX)不能工作并且会引发错误。该行翻译为:console.log(15 = 15 * obj.scaleX)。您不能将值分配给另一个原始值。 -
您是否尝试获取 fabric.Text 对象的“字体大小”,这样当您通过 CSS 将此值设置为纯 HTML 文本的“字体大小”时,它看起来大小相同?
-
我想知道在 fabric.js 中获取字体大小的实际公式是什么?
标签: javascript jquery fabricjs