如何在fabric.js中设置图像的高度和宽度?

时间:2012-09-12 13:48:12

标签: fabricjs

我使用fabric.Image.fromURL在画布中加载了图像,并且使用默认图像宽度和高度正常工作。 现在我想最小化图像的宽度和高度。 怎么做?

提前致谢。

4 个答案:

答案 0 :(得分:9)

我们可以使用scalex / scaley来设置高度/宽度,如下所示。

fabric.util.loadImage(imgsrc, function (img) {
    var legimg = new fabric.Image(img, {
        left: 30,
        top: marker.top,
        scaleX: 20 / img.width,
        scaleY: 20 / img.height
    });
    canvas.add(legimg);
    canvas.renderAll();
});

由于

答案 1 :(得分:1)



var canvas = new fabric.Canvas('canvas');
document.getElementById('file').addEventListener("change", function (e) {
  var file = e.target.files[0];
  var reader = new FileReader();
  reader.onload = function (f) {
    var data = f.target.result;                    
    fabric.Image.fromURL(data, function (img) {
      var oImg = img.set({left: 0, top: 0, angle: 00,width:100, height:100}).scale(0.9);
      canvas.add(oImg).renderAll();
      var a = canvas.setActiveObject(oImg);
      var dataURL = canvas.toDataURL({format: 'png', quality: 0.8});
    });
  };
  reader.readAsDataURL(file);
});

canvas{
  border: 1px solid black;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/kangax/fabric.js/master/dist/fabric.min.js"></script>
<input type="file" id="file"><br />
<canvas id="canvas" width="450" height="450"></canvas>
&#13;
&#13;
&#13;

我们可以设置宽度和高度。

检查此JSfiddle:https://jsfiddle.net/varunPes/8gt6d7op/5/

答案 2 :(得分:0)

使用图像比例属性而不是图像大小。这对我有用。当我设置图像宽度和高度而不是比例时,当我应用过滤器时,它会重置回原始宽度和高度,因为比例为1.0。希望这会有所帮助。

答案 3 :(得分:0)

我测试过的这个工作代码:

fabric.Image.fromURL(el.src, function(image) {
              image.set({
                left: left,
                top: top,
                angle: 0,
                padding: 10,
                cornersize: 10,
                hasRotatingPoint:true
              });

                      image.scaleToHeight(100);
                      image.scaleToWidth(200);

              canvas.add(image);
            });