我的 HTML5 画布中有一个图像背景。
var canvas = new fabric.Canvas('#canvas1');
canvas.setBackgroundImage(
'http://fabricjs.com/assets/jail_cell_bars.png',
canvas.renderAll.bind(canvas)
);
如何将画布的尺寸(宽度、高度)设置为背景图像的尺寸?
谢谢。
我认为上面的答案没有使用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 都已设置。
这些也有效!
canvas.setWidth(500);
canvas.setHeight(400);
Fabric.js 6 个重大更改。
https://github.com/fabricjs/fabric.js/issues/8299
现在的方法如下。
canvas.width = 500;
canvas.height = 400;
您可以使用 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;
};