目标:通过canvas
或通过保留原始对象外观的Javascript将对象(水平或垂直)居于Fabric.js
上另一个对象(矩形或组)内比例相同,但又不超过父对象的宽度/高度比例?
父对象(矩形或组)不会居于canvas
元素上。
这是我到目前为止的代码:https://stackblitz.com/edit/angular-my8hky
到目前为止,我的app.component.ts
:
canvas: fabric.Canvas;
ngOnInit() {
this.canvas = new fabric.Canvas('canvas');
var rect = new fabric.Rect({
left: 100,top: 50,width: 300,height: 200,fill: '#eee'
});
this.canvas.add(rect);
fabric.Image.fromURL('https://angular.io/assets/images/logos/angular/logo-nav@2x.png',(img) => {
let bounds = rect.getBoundingRect();
let oImg = img.set({
left: bounds.left,top: bounds.top,width: rect.width
}).scale(1);
this.canvas.add(oImg).renderAll();
});
}
如果矩形对象的高度减小(例如,高度降低到50px
,则新对象不仅不会垂直居中,而且也不会水平居中。
我意识到我只是在声明内部图像对象的宽度与父矩形的边界宽度相同。
当前解决方案:
父矩形width: 300
和height: 200
:
父矩形width: 300
和height: 50
:
所需的解决方案:
父矩形width: 300
和height: 200
:
父矩形width: 300
和height: 50
:
有人可以协助吗?