HarmonyOS componentSnapshot.get 保存的图片无法显示
我在用 componentSnapshot.get 进行 页面保存为图片时,能保存成功,但是图片无法显示。请问可能是什么原因导致的。 在文件管理器中,看到的图片是有数据的

保存代码
async saveQrCode() {
  try{
    let photoPicker = new picker.DocumentViewPicker();
    let PhotoSaveOptions = new picker.PhotoSaveOptions();
    let dateTimeUtil: DateTimeUtil = new DateTimeUtil();
    let writeLen:number =0 ;
    let pixmapData: image.PixelMap;
    let fd: number | undefined = undefined;
    PhotoSaveOptions.newFileNames = [`Qrcode_${dateTimeUtil.getDate()}_${dateTimeUtil.getTime()}.png`];
    let PhotoSaveResult: Array<string> = await photoPicker.save(PhotoSaveOptions);
    let savePath = PhotoSaveResult[0];
    let pixmap: image.PixelMap = await componentSnapshot.get(MyQRCodePage.ID_SCREEN_SHOOT_AREA);
    pixmapData = pixmap;
    let pixelBytesNumber : number = pixmap.getPixelBytesNumber();
    let readBuffer: ArrayBuffer = new ArrayBuffer(pixelBytesNumber);
    await pixmap.readPixelsToBuffer(readBuffer);
    let file = fs.openSync(savePath, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
    fd = file.fd;
    writeLen = await fs.write(file.fd, readBuffer);
    if (fd) {
      fs.closeSync(fd);
    }
    if(pixmapData){
      pixmapData.release();
    }
    if(writeLen>0){
      CommonToast.show($r('app.string.Stu_Save_Success'), CommonConstants.TOAST_LONG_DELAY);
      //成功
    }else{
      //失败
      CommonToast.show($r('app.string.Stu_Save_Failed'), CommonConstants.TOAST_LONG_DELAY);
    }
  }catch(err){
    Logger.error("saveQrCode error: " + err)
    CommonToast.show($r('app.string.Stu_Save_Failed'), CommonConstants.TOAST_LONG_DELAY);
  }
}
        HarmonyOS
      
        赞
        
 收藏 0
 回答 1
 
        待解决
        
相关问题
 使用componentSnapshot.get能力报错 
1535浏览  • 1回复 待解决
HarmonyOS componentSnapshot页面截图保存图片到相册不完整 
1324浏览  • 1回复 待解决
HarmonyOS  组件旋转后,使用componentSnapshot截图,截到的图片不是显示给用户显示的样子 
782浏览  • 1回复 待解决
HarmonyOS heif图片无法显示 
1240浏览  • 1回复 待解决
HarmonyOS 图片对象PixelMap已编码为图片形式保存本地文件目,无法保存成功 
1068浏览  • 1回复 待解决
HarmonyOS 保存PixelMap到相册,显示保存成功,相册中的图片为空白图片,宽高都是0 
1147浏览  • 1回复 待解决
HarmonyOS 拍照后对应的图片保存到本地后无法打开 
1382浏览  • 1回复 待解决
HarmonyOS Image组件无法显示网络图片 
3722浏览  • 1回复 待解决
HarmonyOS 无法使用受限权限,怎么保存图片到图库中去 
1340浏览  • 1回复 待解决
HarmonyOS  图片保存 
1301浏览  • 1回复 待解决
HarmonyOS 保存图片时,如何获取目标图片的uri,或如何保存传入的图片? 
1117浏览  • 1回复 待解决
HarmonyOS 在使用Image图片组件时,放入pixelMap无法显示图片 
2150浏览  • 1回复 待解决
HarmonyOS webview打开网址有图片无法显示 
1639浏览  • 1回复 待解决
HarmonyOS 图片保存失败 
1207浏览  • 1回复 待解决
HarmonyOS 图片保存功能 
1110浏览  • 1回复 待解决
拍照后图片保存到本地后能打开并显示 
990浏览  • 1回复 待解决
某些图片无法加载,在系统的finder可以正常显示 
2888浏览  • 1回复 待解决
HarmonyOS savebutton的使用影响图片保存? 
1123浏览  • 0回复 待解决
HarmonyOS savebutton的使用影响图片保存 
1057浏览  • 1回复 待解决
HarmonyOS pixelMap保存的图片如何进行保存到相册 
1486浏览  • 1回复 待解决
HarmonyOS 保存图片文件异常 
2028浏览  • 1回复 待解决
HarmonyOS图片保存相册问题 
1739浏览  • 1回复 待解决
HarmonyOS 组件截图然后保存到相册中后无法显示,尺寸为0 
1213浏览  • 1回复 待解决
HarmonyOS 安全控件的保存控件SaveButton保存图片到相册失败 
1337浏览  • 1回复 待解决
使用SaveButton保存图片的方式 
1882浏览  • 1回复 待解决





















1、componentSnapshot.get 获取图片结果为 image.PixelMap 为像素分布,需要使用 imagePackerApi.packing 转换为 jpg\png 等格式。
文档:https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5
2、Demo:componentSnapshot.get 保存的图片,组件 id 为 root,保存文件名:test.png