How to upload an image to a canvas with Fabric.js?

后端 未结 3 512
轮回少年
轮回少年 2020-12-28 08:31

I want that to create a process where the users can upload their images and then edit them in the browser in a Canvas with Fabric.js using some buttons, which uses Fabric.js

相关标签:
3条回答
  • 2020-12-28 08:54
    document.getElementById('imgLoader').onchange = function handleImage(e) {
    var reader = new FileReader();
      reader.onload = function (event){
        var imgObj = new Image();
        imgObj.src = event.target.result;
        imgObj.onload = function () {
          var image = new fabric.Image(imgObj);
          image.set({
                angle: 0,
                padding: 10,
                cornersize:10,
                height:110,
                width:110,
          });
          canvas.centerObject(image);
          canvas.add(image);
          canvas.renderAll();
        }
      }
      reader.readAsDataURL(e.target.files[0]);
    }
    
    0 讨论(0)
  • 2020-12-28 08:58
     var canvas = new fabric.Canvas('main-canvas');
            canvas.selection = false;
            var imgElement = document.getElementById("img11");
    
            var imgInstance = new fabric.Image(imgElement, {
                angle: 0,
                position: 'absolute',
                opacity: 1,
                originX: 'left',
                originY:'top',
                meetOrSlice:'slice',
    
            });
            imgInstance.selectable = false;
            canvas.add(imgInstance);
            canvas.renderAll();
    
    0 讨论(0)
  • 2020-12-28 09:01

    You can upload multiple image by fabric js and its also draggable one place to another place in canvas.

    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: 0,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;
    }
    
    
    Include it like this:
    <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>

    0 讨论(0)
提交回复
热议问题