HarmonyOS 鸿蒙Next中如何使用相机拍照和相册访问?
HarmonyOS 鸿蒙Next中如何使用相机拍照和相册访问? 上传头像,需要调用相机拍照和从相册选择照片的功能
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)中,使用相机拍照和访问相册主要依赖于CameraKit和PhotoAccessHelper两个模块。
-
相机拍照:
- 首先,导入
CameraKit模块。 - 初始化相机实例,配置相机参数(如分辨率、对焦模式等)。
- 调用
takePicture方法进行拍照,拍照完成后,图片数据会通过回调返回。 - 可以将图片保存到设备的指定目录中。
- 首先,导入
-
相册访问:
- 导入
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中,使用相机拍照和访问相册可以通过以下步骤实现:
-
相机拍照:
- 使用
CameraKitAPI初始化相机。 - 配置相机参数,如分辨率、对焦模式等。
- 调用
takePicture()方法捕获图像。 - 保存捕获的图像到指定路径。
- 使用
-
相册访问:
- 使用
PhotoAccessHelperAPI获取相册访问权限。 - 通过
queryPhotos()方法查询相册中的照片。 - 使用
getThumbnail()或getPhoto()方法获取照片的缩略图或原图。
- 使用
确保在config.json中添加相应的权限声明,如ohos.permission.CAMERA和ohos.permission.READ_MEDIA。

