HarmonyOS 鸿蒙Next中如何使用相机拍照和相册访问?

HarmonyOS 鸿蒙Next中如何使用相机拍照和相册访问? 上传头像,需要调用相机拍照和从相册选择照片的功能

3 回复

image.createImageSource(uri)中需要传入沙箱路径,若是通过拉起系统相册选择图片可以通过传入ArrayBuffer构建imageSource ://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-image-V5#imagecreateimagesource9-2

如是需要使用沙箱路径构建,还请看下以下demo:

this.albumPath = photoSelectResult.photoUris[0]; const file = fs.openSync(this.albumPath, fs.OpenMode.READ_WRITE); let path = data/storage/el2/base/files/${file.name}; fs.copyFileSync(file.fd, data/storage/el2/base/files/${file.name}); fs.closeSync(file); const imageSource = image.createImageSource(path);

更多关于HarmonyOS 鸿蒙Next中如何使用相机拍照和相册访问?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS(鸿蒙Next)中,使用相机拍照和访问相册主要依赖于CameraKitPhotoAccessHelper两个模块。

  1. 相机拍照

    • 首先,导入CameraKit模块。
    • 初始化相机实例,配置相机参数(如分辨率、对焦模式等)。
    • 调用takePicture方法进行拍照,拍照完成后,图片数据会通过回调返回。
    • 可以将图片保存到设备的指定目录中。
  2. 相册访问

    • 导入PhotoAccessHelper模块。
    • 使用PhotoAccessHelper提供的API查询设备中的图片和视频。
    • 可以通过PhotoAccessHelper获取图片的URI,然后使用Image组件显示图片。
    • 也可以使用PhotoAccessHelper进行图片的删除、移动等操作。

示例代码:

// 拍照
import camera from '@ohos.camera';
camera.takePicture((err, data) => {
    if (err) {
        console.error('拍照失败', err);
    } else {
        console.log('拍照成功', data);
    }
});

// 访问相册
import photoAccessHelper from '@ohos.photoAccessHelper';
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper();
let fetchOptions = {
    fetchColumns: [photoAccessHelper.PhotoKeys.DISPLAY_NAME, photoAccessHelper.PhotoKeys.DATE_ADDED],
    selections: `${photoAccessHelper.PhotoKeys.DISPLAY_NAME} LIKE ?`,
    selectionArgs: ['%sample%'],
    order: `${photoAccessHelper.PhotoKeys.DATE_ADDED} DESC`
};
phAccessHelper.getPhotos(fetchOptions, (err, result) => {
    if (err) {
        console.error('获取相册失败', err);
    } else {
        console.log('获取相册成功', result);
    }
});

以上是鸿蒙Next中使用相机拍照和访问相册的基本方法。

在HarmonyOS鸿蒙Next中,使用相机拍照和访问相册可以通过以下步骤实现:

  1. 相机拍照

    • 使用CameraKit API初始化相机。
    • 配置相机参数,如分辨率、对焦模式等。
    • 调用takePicture()方法捕获图像。
    • 保存捕获的图像到指定路径。
  2. 相册访问

    • 使用PhotoAccessHelper API获取相册访问权限。
    • 通过queryPhotos()方法查询相册中的照片。
    • 使用getThumbnail()getPhoto()方法获取照片的缩略图或原图。

确保在config.json中添加相应的权限声明,如ohos.permission.CAMERAohos.permission.READ_MEDIA

回到顶部