代码拉取完成,页面将自动刷新
本示例基于photoAccessHelper类接口实现了选择图片的最大数量、设置要选择的媒体文件类型、设置选择文件最大数量等效果,其中也提供了图片压缩能力。
点击选择图片即可进行图片选择或拍照获取图片。
构造函数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开发者,您好!
为了协助您高效开发,提高鸿蒙场景化示例的质量,希望您在浏览或使用后抽空填写一份简单的问卷,我们将会收集您的宝贵意见进行优化
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。