在HarmonyOS中,完成组件截图后,应如何将所得的PixelMap对象保存到系统的相册中?

发布于 1周前 作者 htzhanglong 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next:在HarmonyOS中,完成组件截图后,应如何将所得的PixelMap对象保存到系统的相册中?

内容 
在HarmonyOS中,完成组件截图后,应如何将所得的PixelMap对象保存到系统的相册中?求解 有代码么?谢谢

3 回复
可以先将pixelMap进行格式转换,在保存到相册,同学您可以参考以下接口链接:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5?catalogVersion=V5

pixelmap使用imagePacker.packing的方法转成arraybuffer,在进行编码。例如下面的代码:

imageSource.createPixelMap(decodingOptions).then((pixelMap: PixelMap) => { 

  this.pixelMap = pixelMap 

  this.pixelMap.getImageInfo().then((info: image.ImageInfo) => { 

    console.info('info.width = ’ + info.size.width) 

  }).catch((err: BusinessError) =>{ 

    console.error("Faild " + err); 

  }) 

  imagePackerApi.packing(pixelMap, packOpts).then( (data : ArrayBuffer) => { 

   }).catch((error : BusinessError) => { 

    console.error('Failed to pack the image. And the error is: ’ + error); 

  }) 

  pixelMap.release(); 

})

保存到相册示例代码如下,参考官方:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/photoaccesshelper-useralbum-guidelines-V5

可以尝试使用SaveButton,参考下面demo中的“下载组件截图图片到相册”方法

https://developer.huawei.com/consumer/cn/blog/topic/03157306639465048

在HarmonyOS中,将组件截图后的PixelMap对象保存到系统相册,需要先进行格式转换。使用imagePacker.packing方法将PixelMap转为ArrayBuffer,再进行编码处理。接着,可以利用PhotoAccessHelper等API将处理后的图片保存到系统相册。具体操作可参考华为开发者官网的相关文档。如果问题依旧没法解决请加我微信,我的微信是itying888。

回到顶部