#鸿蒙通关秘籍# 如何使用PixelMap进行图片的深拷贝操作并保持性能优化?

HarmonyOS
2024-12-12 12:02:44
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
一路向北545

PixelMap深拷贝方法。通过readPixelsToBuffer读取图片资源的PixelMap到ArrayBuffer,再通过createPixelMap得到目标PixelMap。

 async function copyPixelMap(pm: PixelMap): Promise<PixelMap> {
     const imageInfo: image.ImageInfo = await pm.getImageInfo();
     const buffer: ArrayBuffer = new ArrayBuffer(pm.getPixelBytesNumber());
     // TODO 知识点:通过readPixelsToBuffer实现PixelMap的深拷贝,其中readPixelsToBuffer输出为BGRA_8888
     await pm.readPixelsToBuffer(buffer);
     // TODO 知识点:readPixelsToBuffer输出为BGRA_8888,此处createPixelMap需转为RGBA_8888
     const opts: image.InitializationOptions = {
       editable: true,
       pixelFormat: image.PixelMapFormat.RGBA_8888,
       size: { height: imageInfo.size.height, width: imageInfo.size.width }
     };
     return await image.createPixelMap(buffer, opts);
   }
分享
微博
QQ
微信
回复
2024-12-12 19:06:50
相关问题
HarmonyOS pixelmap拷贝问题
924浏览 • 1回复 待解决
HarmonyOS 如何对数组进行拷贝
549浏览 • 1回复 待解决
HarmonyOS 浅拷贝拷贝
351浏览 • 1回复 待解决