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

Jcb*_*cbo 9 javascript fabricjs

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

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

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

谢谢.

Cal*_*vin 24

我认为上面的答案不使用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});
}; 
Run Code Online (Sandbox Code Playgroud)

就我而言,

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

结果是:

<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>
Run Code Online (Sandbox Code Playgroud)

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


mid*_*idu -1

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

#canvas1 { width: XXXpx; height: YYYpx; }
Run Code Online (Sandbox Code Playgroud)

或者在 dom 中:

<canvas id="canvas1" width="XXX" height="YYY"></canvas>
Run Code Online (Sandbox Code Playgroud)

如果图像是动态的并且想在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;
};
Run Code Online (Sandbox Code Playgroud)

  • 请注意,**此答案与指定的问题一样不属于 Fabric.js 插件**。它仅适用于通用 HTML 画布元素。请参阅 Calvin 下面的答案来设置 Fabric.Canvas 元素的尺寸。 (2认同)