因此,我有一个ArrayBuffer,它是我用新的HTML5文件读取器读取的文件内容的ArrayBuffer(),我可以通过执行以下操作将ArrayBuffer转换为Uint8Array。
//ab = established and defined ArrayBuffer
var foobar = new Uint8Array([ab]);
//var reversed = reverseUint8Array(foobar);
//reversed should equal ab 如何将最后一个过程重新转换为ab?
下面是我在解密后得到的输出:http://prntscr.com/b3zlxr
这是一种什么样的格式,如何将其转换为blob?
发布于 2017-06-29 00:05:18
我找到了一种更简单的方法来获取Uint8Array的ArrayBuffer。
var arrayBuffer = foobar.buffer; 就是这个!这对我来说很有效!
发布于 2019-02-12 17:34:17
使用kuokongqingyun选项,它并不总是有效的,因为缓冲区可能比数据视图大。
请参阅此示例:
let data = Uint8Array.from([1,2,3,4])
var foobar = data.subarray(0,2)
var arrayBuffer = foobar.buffer;
console.log(new Uint8Array(arrayBuffer)) // will print [1,2,3,4] but we want [1,2]在使用array.buffer时,使用byteOffset和byteLength计算实际数据是很重要的
let data = Uint8Array.from([1,2,3,4])
var foobar = data.subarray(0,2)
var arrayBuffer = foobar.buffer.slice(foobar.byteOffset, foobar.byteLength + foobar.byteOffset);
console.log(new Uint8Array(arrayBuffer)) // OK it now prints [1,2]下面是你需要的函数:
function typedArrayToBuffer(array: Uint8Array): ArrayBuffer {
return array.buffer.slice(array.byteOffset, array.byteLength + array.byteOffset)
}发布于 2016-05-14 23:24:37
如果您需要将其转换回ArrayBuffer(),则需要手动添加每个值。
这意味着,您需要逐个遍历其中的每一个。
可能最快的方法是这样:
var buffer = new ArrayBuffer(foobar.length);
foobar.map(function(value, i){buffer[i] = value});https://stackoverflow.com/questions/37228285
复制相似问题