【问题标题】:How to crop an image converted to Uint8Array?如何裁剪转换为 Uint8Array 的图像?
【发布时间】:2018-09-23 21:46:34
【问题描述】:

我将图像转换为 base64 字符串。我通过代码将base64-string转换为Uint8Array:

const BASE64_MARKER = ';base64,';
function convertDataURIToBinary(dataURI) {
  const base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
  const base64 = dataURI.substring(base64Index);
  const raw = window.atob(base64);
  const rawLength = raw.length;
  const array = new Uint8Array(new ArrayBuffer(rawLength));
  for (let i = 0; i < rawLength; i++) {
    array[i] = raw.charCodeAt(i);
  }
  return array;
}

我不知道如何裁剪它。你能帮我实现算法吗?

【问题讨论】:

  • 使用画布裁剪该图像,您已经有一个数据uri,在画布元素上打印该图像然后裁剪它,无需经历所有这些箍,特别是因为它看起来不像你甚至知道图片的尺寸。
  • 总的来说我同意mpm的评论,但如果你必须在数学上这样做,你需要知道图像的宽度和高度。这些你提前知道吗?如果不是,你将不得不为它们解析 base64 字符串,事情变得有点复杂。
  • 是的,我知道图片的宽度和高度。谢谢cmets,我试试看。

标签: javascript image crop


【解决方案1】:

谢谢你,mpm 和 YAHsaves。 我决定使用画布,它可以轻松快速地工作。 这是npm package 的链接。我希望它可以帮助其他人使用画布在浏览器中裁剪和调整图像大小。

【讨论】:

    猜你喜欢
    • 2013-12-20
    • 1970-01-01
    • 2017-08-17
    • 1970-01-01
    • 2016-11-22
    • 2023-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多