【发布时间】:2017-06-15 00:53:53
【问题描述】:
您好,我正在尝试调整 Fabric.js 画布元素的大小并按比例调整其中的内容。我只是增加了画布区域的宽度和高度,但图像、文本等内容仍保持其原始大小。 我怎样才能实现这种行为。
谢谢。
【问题讨论】:
标签: fabricjs
您好,我正在尝试调整 Fabric.js 画布元素的大小并按比例调整其中的内容。我只是增加了画布区域的宽度和高度,但图像、文本等内容仍保持其原始大小。 我怎样才能实现这种行为。
谢谢。
【问题讨论】:
标签: fabricjs
使用以下函数与所有元素/对象一起按比例调整画布大小。你可以传递任何宽度/大小GetCanvasAtResoution(279);希望这会有所帮助。
function GetCanvasAtResoution(newWidth)
{
if (canvas.width != newWidth) {
var scaleMultiplier = newWidth / canvas.width;
var objects = canvas.getObjects();
for (var i in objects) {
objects[i].scaleX = objects[i].scaleX * scaleMultiplier;
objects[i].scaleY = objects[i].scaleY * scaleMultiplier;
objects[i].left = objects[i].left * scaleMultiplier;
objects[i].top = objects[i].top * scaleMultiplier;
objects[i].setCoords();
}
var obj = canvas.backgroundImage;
if(obj){
obj.scaleX = obj.scaleX * scaleMultiplier;
obj.scaleY = obj.scaleY * scaleMultiplier;
}
canvas.discardActiveObject();
canvas.setWidth(canvas.getWidth() * scaleMultiplier);
canvas.setHeight(canvas.getHeight() * scaleMultiplier);
canvas.renderAll();
canvas.calcOffset();
}
}
【讨论】: