微信小程序使用前置摄像头拍照


Posted in Javascript onOctober 22, 2020

本文实例为大家分享了微信小程序使用前置摄像头拍照的具体代码,供大家参考,具体内容如下

微信小程序使用前置摄像头拍照

1、拍照页面:

<template>
 <view title="拍照">
 <camera v-if="openCamera" device-position="front" frame-size="large" class="zipai" @error="error"> </camera>
 <cover-image src="/static/image/renzheng_zz.png" class="zhezhao"></cover-image>
 <cover-view class="wenzi fint34">请将正面人脸放在识别框中,进行拍摄</cover-view>
 <cover-image class="paizhao" src="/static/image/renzheng_pz.png" @click="takePhoto"></cover-image>
 </view>
</template>
 
<script>
 export default {
 data() {
 return {
 openCamera:true
 }
 },
 
 methods: {
 takePhoto() {
 const ctx = wx.createCameraContext()
 ctx.takePhoto({
  quality: 'high',
  success: (res) => {
  let tempFilePath = res.tempImagePath
  uni.navigateTo({
  url:'/pages/renzhengwxtu/renzhengwxtu?src='+tempFilePath
  })
  }
 })
 },
 //用户拒绝授权摄像头
 error(e) {
 this.openCamera=false
 wx.showModal({
  title: '警告',
  content: '若不授权使用摄像头,将无法使用拍照功能!',
  cancelText: '不授权',
  cancelColor: '#1ba9ba',
  confirmText: '授权',
  confirmColor: '#1ba9ba',
  success:(res)=> {
  if (res.confirm) {//允许打开授权页面
  //调起客户端小程序设置界面,返回用户设置的操作结果
  wx.openSetting({
  success:(res)=> {
   res.authSetting = {
   "scope.camera": true
   }
   this.openCamera=true
  },
  })
  } else if (res.cancel) {//拒绝打开授权页面
  wx.navigateBack({delta:1})
  }
  }
 })
 },
 
 }
 }
</script>

2、预览图片页面:

<template>
 <view title="预览图片">
 <image mode="widthFix" :src="src" class="renlian"></image>
 <view class="btns">
 <text @click="takePhoto">重拍</text>
 <text @click="usePhoto">使用照片</text>
 </view>
 </view>
</template>
 
<script>
 export default {
 data() {
 return {
 src: '',
 timeId:null,
 }
 },
 onLoad(option) {
 this.src=option.src
 },
 onHide() {
 clearTimeout(this.timeId);
 this.timeId=null;
 },
 methods: {
 takePhoto() {
 uni.navigateBack({delta: 1});
 },
 usePhoto() {
 this.$request.uploadFileMinipro(this.src,this.retoRenzheng);
 },
 retoRenzheng(){
 this.timeId=setTimeout(()=>{
  var pages = getCurrentPages();
  var prevPage = pages[pages.length - 3]; //上一个页面
  prevPage.fromTu= true;
  uni.navigateBack({delta: 2});
 },200);
 },
 }
 }
</script>

3、上传图片方法:

// uploadFileMinipro
function uploadFileMinipro(tempFilePath,callback){
 // 1.2 上传头像
 let uin =common.getGlobalUserInfo().id;
 let reurl=common.ip;
 uni.uploadFile({
 url: reurl,
 filePath: tempFilePath,
 name: "file",
 formData:{uin:uin},
 success:(res)=>{
 console.log("res=",res);
 // 注意,这里获得是一个string,需要转换一下
 let resData = JSON.parse(res.data);
 if (resData.status == 1) {//<=0:人工返回的错误信息
 setErrorMessage("上传成功");
 if (typeof callback === "function"){
  callback();//刷新当前页面
 }
 
 } else if (resData.status < 1) {
  setErrorMessage(resData.msg)
 } else {
  setErrorMessage()
 }
 },
 fail:(res)=>{
 console.log("上传失败");
 },
 });
}

为大家推荐现在关注度比较高的微信小程序教程一篇:《微信小程序开发教程》小编为大家精心整理的,希望喜欢。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
Mar 23 Javascript
javascript实现颜色渐变的方法
Oct 30 Javascript
jQuery中parent()方法用法实例
Jan 07 Javascript
JavaScript中的DSL元编程介绍
Mar 15 Javascript
javascript中加var和不加var的区别 你真的懂吗
Jan 06 Javascript
jquery ajax分页插件的简单实现
Jan 27 Javascript
JavaScript使用Range调色及透明度实例
Sep 25 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
Sep 16 Javascript
Vue登录主页动态背景短视频制作
Sep 21 Javascript
JS实现的进制转换,浮点数相加,数字判断操作示例
Nov 09 Javascript
Vue实现点击导航栏当前标签后变色功能
Aug 19 Javascript
vue实现动态表格提交参数动态生成控件的操作
Nov 09 Javascript
jQuery实现可以计算进制转换的计算器
Oct 19 #jQuery
jQuery实现计算器功能
Oct 19 #jQuery
vue3为什么要用proxy替代defineProperty
Oct 19 #Javascript
jQuery实现推拉门效果
Oct 19 #jQuery
小程序实现左滑删除的效果的实例代码
Oct 19 #Javascript
jQuery实现图片切换效果
Oct 19 #jQuery
jQuery实现回到顶部效果
Oct 19 #jQuery
You might like
php checkbox复选框值的获取与checkbox默认值输出方法
2010/05/15 PHP
php while循环得到循环次数
2013/10/26 PHP
mac系统下为 php 添加 pcntl 扩展
2016/08/28 PHP
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
简述AngularJS相关的一些编程思想
2015/06/23 Javascript
JS实现常见的TAB、弹出层效果(TAB标签,斑马线,遮罩层等)
2015/10/08 Javascript
jQuery判断checkbox选中状态
2016/05/12 Javascript
AngularJS基础 ng-options 指令详解
2016/08/02 Javascript
利用adb shell和node.js实现抖音自动抢红包功能(推荐)
2018/02/22 Javascript
node.js利用socket.io实现多人在线匹配联机五子棋
2018/05/31 Javascript
ElementUI Tag组件实现多标签生成的方法示例
2019/07/08 Javascript
纯js实现无缝滚动功能代码实例
2020/02/21 Javascript
解决antd 表单设置默认值initialValue后验证失效的问题
2020/11/02 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
python使用PIL缩放网络图片并保存的方法
2015/04/24 Python
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python中字典的基本知识初步介绍
2015/05/21 Python
python通过cookie模拟已登录状态的初步研究
2016/11/09 Python
Python使用django框架实现多人在线匿名聊天的小程序
2017/11/29 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python中pip的安装与使用教程
2018/08/10 Python
Python学习笔记之变量、自定义函数用法示例
2019/05/28 Python
Python3 Tkinter选择路径功能的实现方法
2019/06/14 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
使用python3批量下载rbsp数据的示例代码
2019/12/20 Python
pytorch 实现查看网络中的参数
2020/01/06 Python
Python 实现使用空值进行赋值 None
2020/03/12 Python
使用keras内置的模型进行图片预测实例
2020/06/17 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
以下为Windows NT 下的32 位C++程序,请计算sizeof 的值
2016/12/07 面试题
办公室人员先进事迹
2014/01/27 职场文书
水果超市创业计划书
2014/01/27 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
李强为自己工作观后感
2015/06/11 职场文书
人间正道是沧桑观后感
2015/06/15 职场文书
深入解析NumPy中的Broadcasting广播机制
2021/05/30 Python