【HarmonyOS】鸿蒙中如何获取用户相册图片

一、前言

    开发中我们经常有获取相册中图片的需求,鸿蒙提供了3种获取用户相册图片的方式。我们对三种方式进行具体实现

 二、简介

 1. 使用系统选择器(PhotoViewPicker)
 2.  直接访问相册数据库(PhotoAccessHelper需权限) 
 3. 文件选择器(FilePicker)
    

三、具体实现

1、方式1系统选择器(PhotoViewPicker)通过系统提供的图片选择器,用户主动选择目标图片

import { photoAccessHelper } from '@kit.MediaLibraryKit';

let photoPicker = new photoAccessHelper.PhotoViewPicker();

photoPicker.select({
MIMEType: photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE, // 指定图片类型
maxSelectNumber: 1 // 设置最大选择数量
}).then((res) => {

    console.log('所选图片URI:', res.photoUris[0]); // 获取图片URI

}).catch((err) => {
    console.error('选择失败:', err);
});


 

2、通过 PhotoAccessHelper 直接查询相册内容:

import PhotoAccessHelper from '@ohos.photo.PhotoAccessHelper';

let photoHelper = new PhotoAccessHelper();

photoHelper.getPhotos({ limit: 10 }).then((photos) => {
    photos.forEach(photo => {
        console.log('相册图片URI:', photo.uri); // 遍历获取图片URI
    });
}).catch((err) => {
    console.error('查询失败:', err);
});

3、文件选择器(FilePicker)获取多种类型文件(含图片),但仅限用户主动选择:

import picker from '@ohos.file.picker';

let filePicker = new picker.PhotoViewPicker(); // 文件选择器

filePicker.select().then((uris) => {
    console.log('文件URI列表:', uris[0]);
}).catch((err) => {
    console.error('文件选择失败:', err);
});

 四、优缺点

1,使用系统选择器(PhotoViewPicker)
         1.1 Ui无法修改成Ui设计样式

2,直接访问相册数据库(PhotoAccessHelper需权限)
        2.1 需申请 ohos.permission.READ_IMAGEVIDEO 权限 ,该权限是受限权限(申请此权限的特殊场景与功能: 应用需要克隆、备份或同步图片/视频类文件);
        2.2 用户需在隐私弹窗中授权。

3、 文件选择器(FilePicker)
        3.1无法直接获取全部图片‌,必须由用户手动选择7;
        3.2无需申请权限,依赖用户交互。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值