> 文档中心 > 鸿蒙开发 拍照功能

鸿蒙开发 拍照功能

鸿蒙拍照(js)

使用camera组件,实现拍照,拍照成功 获取照片路径,显示照片,通过router实现传参数跳转。

一,实现思路

添加一个camera组件用于摄像拍照的操作,添加一个按钮组件,给按钮组件添加一个 onclick事件,事件中调用 拍照的 takePhoto 方法 实现拍照  ,通过拍照成功的回调 获取图片路径,添加一个image组件 和 text组件 ,用来展示图片和图片路径。

拍照成功后还能 做页面跳转,并且参数带上图片路径,这样可以实现跳转到另一个页面显示图片
 

二,代码解析

1,hml文件

hml文件中添加 四个组件  camera,button,text,image 用来实现拍照后展示图片和路径信息。

{{srcUrl}}

2,css文件

css文件用来实现拍照界面的显示样式,camera 实现拍照摄像界面的样式 ,button实现拍照按钮的样式,content实现路径显示的文本样式。

.container {    flex-direction: column;    justify-content: flex-start;    align-items: center;} .camera{    width: 100%;    height: 400px;}.button{    width: 150px;    height: 45px;    font-size: 15px;    margin: 20px;}.content{    font-size: 15px;    color: chocolate;    font-weight: bold;    margin: 10px;}

3,js文件

import prompt from '@system.prompt';import router from '@system.router';export default {    data: {   title: '',   imageSrc:"common/images/bg-tv.jpg",   srcUrl:"拍照图片路径"    },    cameraError(){   prompt.showToast({  message: "授权摄像头失败!"   });    },    takePhoto(e){   var camera_take = this;   var camera = this.$element('camera');  camera.takePhoto({  quality:'high',  success(result){      camera_take.src = result.uri      console.log("拍照成功路径==>>"+camera_take.src);      this.imageSrc = camera_take.src;      this.srcUrl = camera_take.src;      this.routerPage(this.srcUrl);},     fail(result){   console.info('-------------拍照失败回调------'+result)     },     complete(result){   console.info('-------------拍照结束回调------'+result)     } })    },    routerPage(imageUrl){   router.push({  uri: "pages/index/index",  params:{      src: imageUrl  }   })    }}

4,权限

"reqPermissions": [  {    "name": "ohos.permission.CAMERA"  }]