【发布时间】:2021-12-21 17:40:42
【问题描述】:
所以我正在向我们公司的一个项目中添加一些图像处理功能。该功能的一部分是图像裁剪器,希望在某种程度上“自动检测”裁剪后的图像。如果我们的猜测是错误的,他们可以拖放裁剪点,但大多数图像人们应该能够自动裁剪。
我的问题是当我将数据放回画布索引时,根据文档,这些索引对我来说似乎没有任何意义。我正在尝试获取我找到的矩形并将他的画布转换为单个图像大小,现在将包含我的整个矩形。
let width = right - left + 1, height = bottom - top + 1;
canvas.width = width;
canvas.height = height;
ctx.putImageData(imageBuffer, -left, -top, left, top, width,height);
这给了我正确的图像。我会根据文档预期以下代码是正确的。我在 mspaint 中验证了我的 rect 索引是正确的,所以我知道这不是我的算法得出的奇怪数字。
let width = right - left + 1, height = bottom - top + 1;
canvas.width = width;
canvas.height = height;
ctx.putImageData(imageBuffer, 0, 0, left, top, width,height);
为什么必须为第二个和第三个参数设置负索引?我已经验证它在 Chrome 和 Firefox 中的行为都是这样的。
【问题讨论】:
标签: javascript canvas