ファンクションを使用してfabric.jsキャンバス全体を拡大/縮小します。この関数はzoomCanvas(2.2)のようにパーセンテージで値をとります。ここで2.2は220%を意味しますが、パーセンテージの代わりに、カンバスをコンテナに収めるためにキャンバスをピクセル単位でスケーリングする必要があります。たとえば、キャンバスがjsonデータのページに読み込まれたときの初期サイズは1200px x 700px、コンテナサイズは500pxです。今私は、キャンバス全体とすべてのオブジェクトが500ピクセルに収まるように、この500ピクセルをパーセント値に変換する方法を見つける必要があります。すべてのオブジェクトでスケーリングファブリックjsキャンバス
要因は、あなたは、いくつかの寸法で、元のキャンバスを持っている必要があり
function zoomCanvas(factor) {
canvas.setHeight(canvas.getHeight() * factor);
canvas.setWidth(canvas.getWidth() * factor);
if (canvas.backgroundImage) {
// Need to scale background images as well
var bi = canvas.backgroundImage;
bi.width = bi.width * factor; bi.height = bi.height * factor;
}
var objects = canvas.getObjects();
var tcounter = 0;
for (var i in objects) {
tcounter++;
//alert(tcounter);
var scaleX = objects[i].scaleX;
var scaleY = objects[i].scaleY;
var left = objects[i].left;
var top = objects[i].top;
var tempScaleX = scaleX * factor;
var tempScaleY = scaleY * factor;
var tempLeft = left * factor;
var tempTop = top * factor;
objects[i].scaleX = tempScaleX;
objects[i].scaleY = tempScaleY;
objects[i].left = tempLeft;
objects[i].top = tempTop;
objects[i].setCoords();
}
canvas.renderAll();
canvas.calcOffset();
}
1200x700 pxから500x500 pxに変換するには? – Observer
返信ありがとうございます...いいえ、その例のコンテナのサイズは異なるデバイスで異なります –