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


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 相关文章推荐
jQuery学习笔记之Helloworld
Dec 22 Javascript
node.js中的fs.open方法使用说明
Dec 17 Javascript
jquery实现炫酷的叠加层自动切换特效
Feb 01 Javascript
js实现文本框输入文字个数限制代码
Dec 25 Javascript
javascript每日必学之基础入门
Feb 16 Javascript
全面解析Bootstrap中scrollspy(滚动监听)的使用方法
Jun 06 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
Angular实现类似博客评论的递归显示及获取回复评论的数据
Nov 06 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
Sep 12 Javascript
分享一个vue项目“脚手架”项目的实现步骤
May 26 Javascript
小程序Scroll-view上拉滚动刷新数据
Jun 21 Javascript
如何理解Vue前后端数据交互与显示
May 10 Vue.js
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
PHP常用函数小技巧
2008/09/11 PHP
8个PHP数组面试题
2015/06/23 PHP
PHP简单实现上一页下一页功能示例
2016/09/14 PHP
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
40款非常棒的jQuery 插件和制作教程(系列一)
2011/10/26 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
Javascript设置对象的ReadOnly属性(示例代码)
2013/12/25 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
JavaScript中的parse()方法使用简介
2015/06/12 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
表单验证插件Validation应用的实例讲解
2015/10/10 Javascript
Vue单页应用引用单独的样式文件的两种方式
2018/03/30 Javascript
利用layer实现表单完美验证的方法
2019/09/26 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
vue Treeselect下拉树只能选择第N级元素实现代码
2020/08/31 Javascript
Vue在H5 项目中使用融云进行实时个人单聊通讯
2020/12/14 Vue.js
[50:28]2018DOTA2亚洲邀请赛 3.31 小组赛 A组 Newbee vs KG
2018/04/01 DOTA
python 默认参数问题的陷阱
2016/02/29 Python
Python re正则表达式元字符分组()用法分享
2020/02/10 Python
Python wordcloud库安装方法总结
2020/12/31 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
家庭户外服装:Hawkshead
2017/11/02 全球购物
Chantelle仙黛尔内衣美国官网:法国第一品牌内衣
2018/07/26 全球购物
POP文化和音乐灵感的时尚:Hot Topic
2019/06/19 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
社会实践心得体会
2014/01/03 职场文书
初中生期末评语大全
2014/04/24 职场文书
道德之星事迹材料
2014/05/03 职场文书
十佳中学生事迹材料
2014/06/02 职场文书
2015年小学校长工作总结
2015/05/19 职场文书
2015年社区精神文明工作总结
2015/05/26 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
js Proxy的原理详解
2021/05/25 Javascript
使用 Apache Dubbo 实现远程通信(微服务架构)
2022/02/12 Servers
HTML 里 img 元素的 src 和 srcset 属性的区别详解
2023/05/21 HTML / CSS