gpt4 book ai didi

javascript - 如何使用按钮从 Fabric.js Canvas 中删除图像

转载 作者:行者123 更新时间:2023-11-30 12:33:40 28 4
gpt4 key购买 nike

我对 canvas 和 Fabric.js 还很陌生。我按照一些教程,现在可以将图像添加到 Canvas 。但不知道如何删除它。通过点击一个按钮

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() 清除 Canvas 对象并使用 renderAll() 重绘给定的 Canvas 。

试试这段代码:

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
}

关于javascript - 如何使用按钮从 Fabric.js Canvas 中删除图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26815652/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com