图像到Js中的ArrayBuffer

时间:2018-12-17 14:18:53

标签: javascript jquery html5 api

您需要获取jpg并转换为arrayBuffer,有人知道如何执行此操作吗?我尝试使用下面的函数进行操作,但未成功使用Microsoft API

 document.querySelector('#inputImage').addEventListener('change', function() {

    var reader = new FileReader();
    reader.onload = function() {

      var arrayBuffer = this.result,
      array = new Uint8Array(arrayBuffer);


    };

3 个答案:

答案 0 :(得分:0)

您可以使用此功能将base64映像转换为数组缓冲区

export async function base64ToFile(dataURL, fileName) {
    const arr = dataURL.split(',');
    const mime = arr[0].match(/:(.*?);/)[1];
    return (fetch(dataURL)
        .then(function (result) {
            return result.arrayBuffer();
        }));
}

答案 1 :(得分:0)

在我看来this是您代码中的其他内容。使用bind()

reader.onload = function() { .... }.bind(this);

或使用粗箭头语法:

reader.onload = () => { .... };

因为this.result如果result是输入的属性/属性,那么我会说这并不涉及输入元素。

答案 2 :(得分:0)

document.querySelector('#inputImage').addEventListener('change', function() {

    var reader = new FileReader();
    reader.onload = function() {

      var arrayBuffer = new Uint8Array(reader.result);
        console.log(arrayBuffer);
      };
     reader.readAsArrayBuffer(this.files[0]);  
 });
<input type="file" id="inputImage">