繁体   English   中英

如何使用按钮从Fabric.js画布中删除图像

[英]How can I remove image from Fabric.js canvas using button

我是canvas和Fabric.js的新手。 我按照一些教程,现在可以添加图像到画布。 但不知道如何删除它。 单击按钮

HTML

<div id="container">
   <input type="file" id="imageLoader" name="imageLoader" />
   <input type="button" id="imageRemove" name="imageRemove" />
   <canvas id="canvas" width="400" height="400" style="width:400px;height:400px" ></canvas>

JS

var canvas = new fabric.Canvas('canvas', {
    backgroundColor: 'rgb(240,240,240)'
});

var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);

function handleImage(e) {
  var reader = new FileReader();
  reader.onload = function (event) {
    var img = new Image();
    img.onload = function () {
        var imgInstance = new fabric.Image(img, {
            scaleX: 1,
            scaleY: 1
        })
        canvas.add(imgInstance);
    }
    img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}

var imageRemove = document.getElementById('imageRemove');
imageLoader.addEventListener('change', handleRemove, false);

function handleRemove(e) {
   canvas.remove(canvas.getActiveObject());
}

编辑:

这是Jsfiddle

您可以使用clear()清除画布对象,并使用renderAll()重绘给定的画布。

试试此代码:

DEMO

HTML:

    <div id="container">
    <input type="file" id="imageLoader" name="imageLoader" />
    Remove:<input type="button" value="remove" id="imageRemove" name="imageRemove" onClick="handleRemove()"/>
    <canvas id="canvas" width="400" height="400" style="width:400px;height:400px" ></canvas>

JS代码:

var canvas = new fabric.Canvas('canvas', {
    backgroundColor: 'rgb(240,240,240)'
});

var imageLoader = document.getElementById('imageLoader');
imageLoader.addEventListener('change', handleImage, false);

function handleImage(e) {
  var reader = new FileReader();
  reader.onload = function (event) {
    var img = new Image();
    img.onload = function () {
        var imgInstance = new fabric.Image(img, {
            scaleX: 1,
            scaleY: 1
        })
        canvas.add(imgInstance);
    }
    img.src = event.target.result;
}
reader.readAsDataURL(e.target.files[0]);
}

//var imageRemove = document.getElementById('imageRemove');
//imageLoader.addEventListener('change', handleRemove, true);

function handleRemove() {
canvas.clear().renderAll(); // Here is your clear canvas function
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM