
回复
核心技术:相机服务Camera Kit
请参见官方资料:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/camera-overview
一、申请相机权限
打开src>>main>>module.json5文件,在requestPermissions数组中添加ohos.permission.CAMERA
{
"name": "ohos.permission.CAMERA",
"reason": "$string:camera_reason",
"usedScene": {
"abilities": [
"EntryAbility"
],
"when": "always"
二、定义拉起手机摄像头异步方法
/**
* 拍照
*/
async pickerCamera():Promise<void>{
try {
let pProfile:cameraPicker.PickerProfile={
cameraPosition:camera.CameraPosition.CAMERA_POSITION_BACK
};
let pResult:cameraPicker.PickerResult=await cameraPicker.pick(getContext(this)
,[cameraPicker.PickerMediaType.PHOTO],pProfile);
this.photoUri=pResult.resultUri;
console.log(this.photoUri);
let pModel:PestModel =new PestModel();
pModel.Img=this.photoUri;
// 跳转病害详情页面
router.pushUrl({url:'pages/PestInfoPage',params:pModel});
}catch (err){
console.error((err as BusinessError).message);
}
}
三、定义打开手机相册异步方法
/**
* 从相册选择
*/
async getPhotoFromAlbum():Promise<void>{
let photoSelectOpt=new photoAccessHelper.PhotoSelectOptions();
photoSelectOpt.MIMEType=photoAccessHelper.PhotoViewMIMETypes.IMAGE_TYPE;
photoSelectOpt.maxSelectNumber=1;
let photoPicker=new photoAccessHelper.PhotoViewPicker();
let photoSelectResult:photoAccessHelper.PhotoSelectResult=await photoPicker.select(photoSelectOpt);
this.photoUri=photoSelectResult.photoUris[0];
console.log(this.photoUri);
if(this.photoUri !==undefined){
let pModel:PestModel =new PestModel();
pModel.Img=this.photoUri;
// 跳转病害详情页面
router.pushUrl({url:'pages/PestInfoPage',params:pModel});
}
}
打开手机摄像头拍照或从相册选择图片后,跳转到病虫害详情页面,展示该图片及更多信息。