HarmonyOS 鸿蒙Next:PixelMap转base64格式时readPixelsToBuffer未更新buffer数据,是否使用错误,已确认pixel可由image正常渲染
HarmonyOS 鸿蒙Next:PixelMap转base64格式时readPixelsToBuffer未更新buffer数据,是否使用错误,已确认pixel可由image正常渲染
想把PixelMap转成base64格式,发现使用readPixelsToBuffer并没有将数据更新到buffer中,是否使用错误,已经确定的是pixel可以由image正常渲染
async pixelMapToBase64(pixel: PixelMap): Promise<string> { try { const buffer: ArrayBuffer = new ArrayBuffer(pixel.getPixelBytesNumber()) await pixel.readPixelsToBuffer(buffer) const base64Helper = new util.Base64Helper() const uint8Array = new Uint8Array(buffer) const base64Str = base64Helper.encodeToStringSync(uint8Array) return base64Str } catch (error) { return Promise.reject(error) } }
更多关于HarmonyOS 鸿蒙Next:PixelMap转base64格式时readPixelsToBuffer未更新buffer数据,是否使用错误,已确认pixel可由image正常渲染的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
1:readPixelsToBuffer使用没有问题; 2:想把PixelMap转成base64格式需求使用imagePacker将pixelMap压缩后再进行base64 参考代码:
const imagePackerApi: image.ImagePacker = image.createImagePacker();
let packOpts: image.PackingOption = {
format: 'image/jpeg',
quality: 100
};
imagePackerApi.packing(myPixelMap, packOpts)
.then((ttt: ArrayBuffer) => {
let buf: buffer.Buffer = buffer.from(ttt);
let base64Url: string = buf.toString('base64url', 0, buf.length);
this.base64Str = base64Url;
})
.catch((err) => {
console.info(err);
});
更多关于HarmonyOS 鸿蒙Next:PixelMap转base64格式时readPixelsToBuffer未更新buffer数据,是否使用错误,已确认pixel可由image正常渲染的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html