gpt4 book ai didi

javascript - 使用 uint8 和 uint16 数组将图像读取为 arraybuffer

转载 作者:行者123 更新时间:2023-11-28 06:36:40 29 4
gpt4 key购买 nike

这是一段代码,用于通过检查所需的魔数(Magic Number)来检查上传的图像mime类型(我仍然不太清楚它们)。当我将 blob 文件提供给 uint8Array 时,它可以工作,数组会填充。但如果我使用 uint16array 则会出现错误。出现此错误的原因可能是什么。它说无效论证。

我对这个主题有两个问题。

1。为什么我不能使用 uint16array 而不是 uint8array ?

2。我读了维基百科。但它包含了很多技术性的东西。你能解释一下“神奇数字”吗,以便我能理解它到底是什么(简而言之)

enter image description here

var upload=document.getElementById('upload');
upload.addEventListener('change',function(e){



if(window.File && window.FileReader && window.FileList){

var file=e.target.files[0];
console.log(file.type);

var fileReader=new FileReader();

fileReader.onload= function(e){
var arr = (new Uint8Array(e.target.result));

console.log(arr);
var arr2=(new Uint16Array(e.target.result));
console.log(arr2);

};
fileReader.readAsArrayBuffer(file);
}else{
alert('file api not compatible with your browser');
}

});

最佳答案

  1. 此处不能使用 Uint16Array,因为文件的字节数为奇数。根据确定,Uint16Array 需要偶数个字节(2 的倍数)。

    此外,我不太确定它的用途是什么。 Unit16Array 按照平台字节顺序读取数据,这会根据平台的不同导致不同的结果。你绝对可以用字节来检查魔数(Magic Number)。

  2. 魔数(Magic Number)只是给定位置(通常在文件的开头)的字节序列,它允许人们识别文件类型。当然,魔数(Magic Number)的存在不足以使该文件成为可识别格式的有效文件,但它的缺失肯定会排除该文件属于所需类型(对于包含魔数(Magic Number)的文件类型,这不是所有这些都必然如此)。

关于javascript - 使用 uint8 和 uint16 数组将图像读取为 arraybuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34225642/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com