HarmonyOS 鸿蒙Next 将Uint8Array转为ArrayBuffer

HarmonyOS 鸿蒙Next 将Uint8Array转为ArrayBuffer 我有一个Uint8Array对象想要转为ArrayBuffer,然后image.createPixelMapSync()方法把arrayBuffer转为PixelMap,请问有示例代码么

3 回复

参考以下代码:

let arrayBuffer: ArrayBuffer = new ArrayBuffer(8);

let uint8Array: Uint8Array = new Uint8Array(arrayBuffer);

let buffer: ArrayBuffer = uint8Array.buffer;

const arrayBuffer = new Uint8Array([72, 101, 108, 100, 111]).buffer;

更多关于HarmonyOS 鸿蒙Next 将Uint8Array转为ArrayBuffer的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


let buffer: ArrayBuffer = uint8Array.buffer;

直接 .buffer 取属性值就可以

在HarmonyOS鸿蒙Next系统中,如果你需要将一个Uint8Array转换为ArrayBuffer,可以直接使用JavaScript的内置方法,因为鸿蒙系统支持标准的Web API。以下是转换方法:

// 假设你有一个Uint8Array
let uint8Array = new Uint8Array([10, 20, 30, 40]);

// 创建一个与Uint8Array长度相同的ArrayBuffer
let arrayBuffer = uint8Array.buffer;

// 或者,如果你需要一个新的ArrayBuffer副本,可以使用以下方式:
// let arrayBufferCopy = new ArrayBuffer(uint8Array.length);
// let view = new Uint8Array(arrayBufferCopy);
// view.set(uint8Array);

// 此时,arrayBuffer即为转换后的ArrayBuffer
// 你可以通过TypedArray视图来访问ArrayBuffer中的数据
let newUint8Array = new Uint8Array(arrayBuffer);
console.log(newUint8Array); // 输出: Uint8Array(4) [10, 20, 30, 40]

在上面的代码中,uint8Array.buffer直接引用了Uint8Array所基于的ArrayBuffer。如果你需要一个独立的副本,可以使用ArrayBufferTypedArray视图(如Uint8Array)来复制数据。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部