#鸿蒙通关秘籍# 如何使用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);
   }
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
分享
微博
QQ
微信
回复
2024-12-12 19:06:50
相关问题
HarmonyOS imagepixelmap如何进行拷贝
527浏览 • 1回复 待解决
HarmonyOS pixelmap拷贝问题
1393浏览 • 1回复 待解决
HarmonyOS 如何对数组进行拷贝
1003浏览 • 1回复 待解决
HarmonyOS 浅拷贝拷贝
1058浏览 • 1回复 待解决