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

HarmonyOS
8h前
浏览
收藏 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
微信
回复
1h前
相关问题
HarmonyOS pixelmap拷贝问题
563浏览 • 1回复 待解决
HarmonyOS 如何对数组进行拷贝
211浏览 • 1回复 待解决
ArkTS中如何实现对象拷贝
334浏览 • 1回复 待解决
ArkWeb组件是否支持拷贝
502浏览 • 1回复 待解决
HarmonyOS ArkWeb组件是否支持拷贝
413浏览 • 2回复 待解决