封装照片选择方法
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { BusinessError } from '@kit.BasicServicesKit';
import { dataSharePredicates } from '@kit.ArkData';
import { abilityAccessCtrl } from '@kit.AbilityKit';
export class ImagePickerUtil {
static async selectImages(maxSelectNumber: number = 9): Promise<string[]> {
try {
// 创建选择选项配置
const options = new photoAccessHelper.PhotoSelectOptions();
options.MIMEType = photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
options.maxSelectNumber = maxSelectNumber;
// 创建选择器实例
const picker = new photoAccessHelper.PhotoViewPicker();
// 拉起图库选择界面
const result = await picker.select(options);
// 返回选中的图片URI数组
return result.photoUris;
} catch (error) {
throw new Error(error);
}
}
}
调用
import { ImagePickerUtil } from "../utils/ImagePicker";
ImagePickerUtil.selectImages(30)
.then(uris => {
this.imageList = uris
})
.catch((error: BusinessError) => {
console.error('图片选择异常:', error);
});
获取图片元数据
通过
PhotoViewPicker
获取到的照片是一个临时文件,无法获取照片的元数据,需要使用fs.open
获取文件的fd再进行操作
import { fileIo as fs } from '@kit.CoreFileKit';
const file = fs.openSync(image, fs.OpenMode.READ_ONLY)
const stat = fs.statSync(file.fd);
Comments NOTHING