1 Star 0 Fork 0

ScenarioSamples/PickerAndCameraDemo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

照片选择和相机Demo

介绍

本示例基于photoAccessHelper类接口实现了选择图片的最大数量、设置要选择的媒体文件类型、设置选择文件最大数量等效果,其中也提供了图片压缩能力。

效果预览

图片名称

约束与限制

  1. 本示例仅支持标准系统上运行,支持设备:华为手机。
  2. HarmonyOS系统:HarmonyOS 5.0.0 Release及以上。
  3. DevEco Studio版本:DevEco Studio 5.0.0 Release及以上。
  4. HarmonyOS SDK版本:HarmonyOS 5.0.0 Release SDK及以上。

使用说明

点击选择图片即可进行图片选择或拍照获取图片。

实现思路

构造函数selectAndCompressPicture(),实现选择图片、对图片进行压缩,并将压缩后的图片转换为 Base64 编码格式的功能,并将得到的 Base64 字符串存储在 this.pictures 数组中。

  async selectAndCompressPicture() {
    this.pictures = [];
    let selectResult: photoAccessHelper.PhotoSelectResult = await PictureUtils.selectPicture(6);
    let pictureUriArr: Array<string> = selectResult.photoUris;
    pictureUriArr.forEach(uri => {
      PictureUtils.compressPicture(uri, "image/jpeg", 20).then((data: ArrayBuffer) => {
        // 将图片转成base64
        let base64Str = buffer.from(data).toString('base64')
        let resultBase64Str = "data:image/png;base64," + base64Str
        this.pictures.push(resultBase64Str)
      })
    });
  }

构造selectPicture方法:创建PhotoSelectOptions对象,设置选择的媒体文件类型,将选择的媒体文件类型设置为图片类型;设置选择文件的最大数量,设置为传入的selectNumber,限制用户最多可以选择的图片数量;创建PhotoViewPicker对象,调用select方法并返回结果。

static async selectPicture(selectNumber: number): Promise<photoAccessHelper.PhotoSelectResult> {
    let photoSelectOptions = new photoAccessHelper.PhotoSelectOptions();
    // 设置要选择的媒体文件类型
    photoSelectOptions.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
    // 设置选择文件最大数量
    photoSelectOptions.maxSelectNumber = selectNumber;
    let photoPicker = new photoAccessHelper.PhotoViewPicker();
    return await photoPicker.select(photoSelectOptions)
}

工程目录

│──entry/src/main/ets  // hap包
│  ├──entryability
│  │  └──EntryAbility.ets    // 应用入口类
│  ├──entrybackupability
│  │  └──EntryBackupAbility.ets       
│  ├──pages
│  │  └──utils
│  │     └──PictureUtils.ets   //选择图片工具、压缩图片工具
│  │  └──Index.ets     // 应用首页
│──resources    

一份简单的问卷反馈

亲爱的Harmony Next开发者,您好!
为了协助您高效开发,提高鸿蒙场景化示例的质量,希望您在浏览或使用后抽空填写一份简单的问卷,我们将会收集您的宝贵意见进行优化

点击此处填写问卷

空文件

简介

【鸿蒙 Harmony Next 示例 代码】本示例基于photoAccessHelper类接口实现了选择图片的最大数量、设置要选择的媒体文件类型、设置选择文件最大数量等效果,其中也提供了图片压缩能力。 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/scenario-samples/picker-and-camera-demo.git
git@gitee.com:scenario-samples/picker-and-camera-demo.git
scenario-samples
picker-and-camera-demo
PickerAndCameraDemo
master

搜索帮助