在fabric.js中设置画布的宽度和高度

问题描述 投票:0回答:4

我的 HTML5 画布中有一个图像背景。

var canvas = new fabric.Canvas('#canvas1');
canvas.setBackgroundImage(
            'http://fabricjs.com/assets/jail_cell_bars.png',
             canvas.renderAll.bind(canvas)
       );

如何将画布的尺寸(宽度、高度)设置为背景图像的尺寸?

谢谢。

javascript fabricjs
4个回答
52
投票

我认为上面的答案没有使用fabric.js,它使用普通的画布。

当你使用fabric.js及其Fabric.Canvas类时,代码应该是:

image.onLoad = function() {
  var fabric_canvas = new fabric.Canvas('canvas1');
  fabric_canvas.setDimensions({width:image.width, height:image.height});
}; 

就我而言,

var canvas = new fabric.Canvas("test_fabric");
canvas.setDimensions({width:800, height:200});

结果是:

<canvas id="test_fabric" width="800" height="200" class="lower-canvas" style="position: absolute; width: 800px; height: 200px; left: 0px; top: 0px; -webkit-user-select: none;"></canvas>

canvas.width 和 canvas.style.width 都已设置。


5
投票

这些也有效!

canvas.setWidth(500);
canvas.setHeight(400);

0
投票

Fabric.js 6 个重大更改。

https://github.com/fabricjs/fabric.js/issues/8299

现在的方法如下。

canvas.width = 500;
canvas.height = 400;

-1
投票

您可以使用 CSS 或 dom 属性来设置画布的尺寸。如果您知道图像的尺寸,则可以在样式表中完成:

#canvas1 { width: XXXpx; height: YYYpx; }

或者在dom中:

<canvas id="canvas1" width="XXX" height="YYY"></canvas>

如果图像是动态的并且想在JS中设置尺寸,你可以这样做:

var image = new Image()
image.src = 'http://fabricjs.com/assets/jail_cell_bars.png';

image.onLoad = function () { 
  var canvas = document.getElementById('canvas1');

  canvas.width = image.width;
  canvas.height = image.height;
};
© www.soinside.com 2019 - 2024. All rights reserved.