#鸿蒙通关秘籍#如何实现从图库选择并展示图片的完整步骤?

HarmonyOS
7天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
BinaryBreeze

使用PhotoViewPicker创建图库选择器实例后,通过select()接口拉起图库界面进行文件选择,文件选择成功后会返回PhotoSelectResult结果集。返回的URIs权限仅为只读,可以依据URI读取文件数据。具体实现步骤如下:

  1. 创建图库选择器实例:

    const photoViewPicker = new picker.PhotoViewPicker();
    
  2. 调用select()接口:

    photoViewPicker.select().then(async (photoSelectResult: picker.PhotoSelectResult) => {
      const selectUris = photoSelectResult.photoUris;
      console.info('Successfully selected file with URIs: ' + selectUris);
    }).catch((err: BusinessError) => {
      console.error(`Failed to select file, error code: ${err.code}, message: ${err.message}`);
    });
    
  3. 使用返回URI创建pixelMap并展示:

    // 使用fs.openSync接口通过URI打开文件
    let file = fs.openSync(selectUris[0], fs.OpenMode.READ_ONLY);
    const imageSource = image.createImageSource(file.fd);
    fs.closeSync(file);
    
    let decodingOptions = {
      editable: true,
      desiredPixelFormat: 3,
    };
    
    imageSource.createPixelMap(decodingOptions).then((pixelMap: image.PixelMap) => {
      this.pixelMap = pixelMap;
      Image(this.pixelMap).width(200).height(200);
    });
    
分享
微博
QQ
微信
回复
7天前
相关问题
怎样让用户选择加载图片
9096浏览 • 1回复 待解决