Uint将数组钳制为数据url



我想以base64数据url格式获得画布的一部分,它将被发送到我的api因为我使用的是ctx.getImageData((方法,它返回一个箝位的uint8数组这是代码:

const data = ctx.getImageData(mousex, mousey, mousex1, mousey1);
const clamped = data.data
}

我尝试过很多btoa方法,但要么返回一个满是A的坏数组,要么返回一一个有很多/的坏数组

您可以使用canvas.toDataURL(类型,encoderOptions(来实现此目的。

  1. 首先提取源图像的部分。您不需要getImageData((。相反,使用part_canvas = document.createElement("canvas")创建第二个画布,该画布不必在页面上可见
  2. 为其指定要提取的零件的大小、宽度和高度
  3. 画布上的part_ctx = part_canvas.getContext("2d")
  4. 然后part_ctx.drawImage(source_image, part_x, part_x, part_width, parth_height, 0, 0, part_width, parth_height);这将获取源图像的一个矩形区域,并将其放在无形画布中
  5. 最后,您可以执行part_canvas.toDataURL(),并且您有数据URL

没有测试。但我认为这应该奏效。

最新更新