微信小程序实现身份证取景框拍摄


Posted in Javascript onSeptember 09, 2020

本文实例为大家分享了微信小程序实现身份证取景框拍摄的具体代码,供大家参考,具体内容如下

wxml

<view class="camera_box">
 <camera class="camera" wx:if="{{!show}}" device-position="back" flash="off" binderror="error">
 <cover-view class="id_m">
  <cover-image class="img" src="//img.jbzj.com/file_images/article/202009/202099172501721.png"></cover-image>
 </cover-view>
 </camera>
 <image class="camera_img" src="{{src}}" wx:if="{{show}}"></image>
 <view class="action">
 <button class="takeBtn" type="primary" bindtap="takePhoto" wx:if="{{!show}}"></button>
 <button class="saveImg" type="primary" bindtap="saveImg" wx:if="{{show}}"></button>
 <button class="cancelBtn" wx:if="{{show}}" type="primary" bindtap="cancelBtn"></button>
 </view>
</view>

wxss

.camera_box {
 height: 100vh; width: 100vw;
 position: relative;
}
.camera {
 height: 85vh; width: 100vw;
 z-index: 1;
}
.id_m {
 height: 85vh; width: 100vw;
 z-index: 999;
 background: rgba(0, 0, 0, 0.1);
 display: flex;
 position: absolute;
}
.id_m .img {
 width: 550rpx;
 height: 900rpx;
 display: block;
 position: absolute;
 left: 0; right: 0; margin: auto auto;
 top: 0; bottom: 0;
}
.id_m .tips_txt {
 transform:rotate(90deg);
}
.camera_box .action {
 height: 15vh;
 position: relative;
 display: flex;
 justify-content: space-around;
 align-items: center;
} 
.camera_box .takeBtn {
 height: 120rpx; width: 120rpx; border-radius: 50%;
 font-size: 24rpx;
 background: url('https://cdn.ctoku.com/1123123123123e3241.png') no-repeat center;
 background-size: contain;
 border: none;
}
.camera_box .cancelBtn {
 font-size: 24rpx;
 height: 120rpx; width: 120rpx; border-radius: 50%;
 background: url('https://cdn.ctoku.com/12311123342312231.png') no-repeat center;
 background-size: contain;
 border: none;
}
.camera_box .saveImg {
 background: url('https://cdn.ctoku.com/1232123434231231231.png') no-repeat center;
 font-size: 24rpx;
 height: 120rpx; width: 120rpx; border-radius: 50%;
 background-size: contain;
 border: none;
}
.camera_box .takeBtn::after {
 border: none;
}

.camera_img {
 height: 85vh; width: 100%;
}

js

Page({

 /**
 * 页面的初始数据
 */
 data: {
 src: '',
 show: false
 },
 cancelBtn () {
 this.setData({show: false})
 },
 saveImg () {
 wx.showModal({
  title: '图片地址',
  content: this.data.src,
 })
 },
 takePhoto() {
 const ctx = wx.createCameraContext()
 const listener = ctx.onCameraFrame((frame) => {
  console.log(frame)
 })
 ctx.takePhoto({
  quality: 'high',
  success: (res) => {
  console.log(res)
  this.setData({
   src: res.tempImagePath,
   show: true
  })
  listener.stop({
   success: (res) => {
   console.log(res)
   },
   fail: (err) =>{
   console.log(err)
   }
  })
  },
  fail: (err) => {
  console.log(err)
  }
 })
 },
 error(e) {
 console.log(e.detail)
 },
 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 
 },

 /**
 * 生命周期函数--监听页面初次渲染完成
 */
 onReady: function () {
 
 },

 /**
 * 生命周期函数--监听页面显示
 */
 onShow: function () {
 
 },

 /**
 * 生命周期函数--监听页面隐藏
 */
 onHide: function () {
 
 },

 /**
 * 生命周期函数--监听页面卸载
 */
 onUnload: function () {
 
 },

 /**
 * 页面相关事件处理函数--监听用户下拉动作
 */
 onPullDownRefresh: function () {
 
 },

 /**
 * 页面上拉触底事件的处理函数
 */
 onReachBottom: function () {
 
 },

 /**
 * 用户点击右上角分享
 */
 onShareAppMessage: function () {
 
 }
})

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

Javascript 相关文章推荐
javascript multibox 全选
Mar 22 Javascript
一个很酷的拖动层的js类,兼容IE及Firefox
Jun 23 Javascript
解析js中获得父窗口链接getParent方法以及各种打开窗口的方法
Jun 19 Javascript
js中使用replace方法完成某个字符的转换
Aug 20 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
jquery实现页面虚拟键盘特效
Aug 08 Javascript
jQuery实现checkbox列表的全选、反选功能
Nov 24 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
Feb 23 Javascript
JavaScript基于对象方法实现数组去重及排序操作示例
Jul 10 Javascript
浅谈VUE单页应用首屏加载速度优化方案
Aug 28 Javascript
vue组件定义,全局、局部组件,配合模板及动态组件功能示例
Mar 19 Javascript
JavaScript面试技巧之数组的一些不low操作
Mar 22 Javascript
vue实现点击按钮“查看详情”弹窗展示详情列表操作
Sep 09 #Javascript
微信小程序实现点击生成随机验证码
Sep 09 #Javascript
vue 获取元素额外生成的data-v-xxx操作
Sep 09 #Javascript
vue移动端写的拖拽功能示例代码
Sep 09 #Javascript
vue路由的配置和页面切换详解
Sep 09 #Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 #Javascript
在Vue中获取自定义属性方法:data-id的实例
Sep 09 #Javascript
You might like
Optimizer与Debugger兼容性问题的解决方法
2008/12/01 PHP
两种设置php载入页面时编码的方法
2014/07/29 PHP
记Laravel调用Gin接口调用formData上传文件的实现方法
2019/12/12 PHP
JavaScript 精粹读书笔记(1,2)
2010/02/07 Javascript
javascript 判断字符串是否包含某字符串及indexOf使用示例
2013/10/18 Javascript
Vue.js 表单校验插件
2016/08/14 Javascript
angularJs关于指令的一些冷门属性详解
2016/10/24 Javascript
基于VUE.JS的移动端框架Mint UI的使用
2017/10/11 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
element中的$confirm的使用
2020/04/26 Javascript
JS实现时间校验的代码
2020/05/25 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
Nuxt的动态路由和参数校验操作
2020/11/09 Javascript
[03:07]完美世界DOTA2联赛PWL DAY10 决赛集锦
2020/11/11 DOTA
Python中线程的MQ消息队列实现以及消息队列的优点解析
2016/06/29 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
基于python3.7利用Motor来异步读写Mongodb提高效率(推荐)
2020/04/29 Python
PHP基于phpqrcode类库生成二维码过程解析
2020/05/28 Python
Python中bisect的用法及示例详解
2020/07/20 Python
pycharm不以pytest方式运行,想要切换回普通模式运行的操作
2020/09/01 Python
python 监控logcat关键字功能
2020/09/04 Python
amazeui时间组件的实现示例
2020/08/18 HTML / CSS
Columbia美国官网:美国著名的户外服装品牌
2016/11/24 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
自我鉴定范文
2013/11/10 职场文书
求职信模板标准格式范文
2014/02/23 职场文书
花坛标语大全
2014/06/30 职场文书
绿色校园广播稿
2014/10/13 职场文书
2014年导购员工作总结
2014/11/18 职场文书
2015年村计划生育工作总结
2015/04/28 职场文书
高一军训感想
2015/08/07 职场文书
运动会跳远广播稿
2015/08/19 职场文书
Pytorch中的学习率衰减及其用法详解
2021/06/05 Python
python中对列表的删除和添加方法详解
2022/02/24 Python