如何使用第三方库中的picker_utils (API12) PickerUtil类

2025-06-20 17:19:08
169次阅读
0个评论
最后修改时间:2025-07-21 10:45:43

1. 安装依赖

ohpm i @pura/picker_utils

  • 版本建议:安装时可通过 ohpm i @pura/picker_utils@latest 获取最新稳定版本

  • 依赖说明:本库封装了系统原生多媒体选择能力,无需额外配置底层硬件接口

2.在使用的页面导入模块


import { CameraOptions, PickerUtil } from '@pura/picker_utils';
import { image } from '@kit.ImageKit';
import { camera, cameraPicker } from '@kit.CameraKit';
import { BusinessError } from '@kit.BasicServicesKit';


  • 关键模块

    • CameraOptions:相机参数配置接口

    • PickerUtil:核心工具类,提供多媒体选择方法

    • BusinessError:统一错误处理对象

3.拍照(需要有拍照权限)

let options: CameraOptions = {
  mediaTypes: [cameraPicker.PickerMediaType.PHOTO],
  cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK
}
PickerUtil.camera(options).then((result) => {
  this.uriStr = `调用相机,返回uri:\n${result.resultUri}`;
}).catch((err: BusinessError) => {
  this.uriStr = `调用相机,异常:\n${JSON.stringify(err)}`;
});

  • 技术特点

    • 系统级集成:直接调用设备原生相机应用,保证最佳兼容性

    • 零配置启动:默认使用系统推荐参数,开发者无需调整分辨率/比例等细节

    • 即时资源访问:返回的 URI 可直接用于 image.createImageSource() 创建图像源

  • 应用场景扩展

    • 证件照拍摄(支持自动保存到指定相册目录)

    • 商品扫描识别(配合AI解析库实现即时识别)

    • 现场巡检记录(自动添加地理位置水印)

  • 最佳实践

    • 调用前通过 abilityAccessCtrl 模块动态申请相机权限

    • 大尺寸图片处理建议使用 image.createImageSource() 进行压缩

    • 重要场景可启用地理位置标记功能

4.选择单张 / 多张图片

PickerUtil.selectPhoto().then((uris) => {
  this.uriStr = `调用相册,返回uris:\n${uris.join('\n')}`;
}).catch((err: BusinessError) => {
  this.uriStr = `调用相册,异常:\n${JSON.stringify(err)}`;
})

  • 技术特点

    • 智能媒体过滤:自动识别并过滤损坏/不支持的图片格式

    • 内存优化:流式加载机制避免大图列表内存溢出

    • 多选控制:默认支持多选,可通过参数配置单选模式

  • 应用场景扩展

    • 社交媒体多图发布(9宫格图片选择)

    • 电子相册制作(跨相册图片聚合选择)

    • 图片批量编辑处理(滤镜/裁剪/水印)

  • 性能优化建议

    • 超大型相册建议分页加载(需SDK支持)

    • 使用 Image 组件时建议设置显示尺寸避免内存溢出

    • 重要数据建议立即复制到应用私有目录

5.选择单个或多个文件

let options: picker.DocumentSelectOptions = {
  maxSelectNumber: 9, //选择媒体文件数量的最大值,默认9。
  selectMode: picker.DocumentSelectMode.FILE, //支持选择的资源类型,默认文件
}
PickerUtil.selectDocument(options).then((uris) => {
  this.uriStr = `调用文件管理,返回uris:\n${uris.join('\n')}`
}).catch((err: BusinessError) => {
  this.uriStr = `调用文件管理,异常:\n${JSON.stringify(err)}`
});

  • 特点: 调用系统文件管理器。允许开发者通过 maxSelectNumber 参数限制用户选择的文件数量上限,并通过 selectMode 指定选择的是文件还是文件夹。返回选中的文件或文件夹的 URI 数组。

  • 适用场景: 适用于需要用户从设备存储中选择特定文件的应用场景,例如文档上传、附件选择、导入外部数据文件、备份文件选择等。

注意事项:

  • 本文档展示了 @pura/picker_utils 库的核心功能(拍照、选图、选文件)的基本用法。

  • 该库可能提供更多高级选项和配置参数。如需了解更详尽的功能说明、参数细节以及高级用法,请务必参考该第三方 SDK 的官方文档或源码。

本文档所使用类的源地址链接

entry/src/main/ets/pages/utils/PickerUtilPage.ets · 桃花镇童长老/harmony-utils - Gitee.com

本文档所介绍的第三方库源地址链接OpenHarmony三方库中心仓

##三方SDK##数码相机##

收藏00

登录 后评论。没有帐号? 注册 一个。