我正在做一个简单的图像裁剪,用户用鼠标在他们想要保留的区域周围画一条线。当他们确认后,图像的其余部分将被裁剪掉。以下是我目前处理上述裁剪的方式:
var data = c.getImageData(0,0,canvas.width,canvas.height);
for (var x = 0; x < data.width; x++) {
for (var y = 0; y < data.height; y++) {
if (!c.isPointInPath(x,y)) {
var n = x + (data.width * y);
var index = n*4;
data.data[index+3] = 0;
}
}
}
但是,这可能会很快陷入困境。您尝试保留的图像越少,运行速度就越快,但即使保存 30% 的图像(画布为 800x800)也会导致它挂起几秒钟。有没有更快的方法来解决这个问题?