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


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的给文章加入关键字链接
Oct 26 Javascript
json2.js的初步学习与了解
Oct 06 Javascript
js或者jquery判断图片是否加载完成实现代码
Mar 20 Javascript
jquery移动节点实例
Jan 14 Javascript
JS实现仿google、百度搜索框输入信息智能提示的实现方法
Apr 20 Javascript
基于JavaScript实现焦点图轮播效果
Mar 27 Javascript
完美解决浏览器跨域的几种方法(汇总)
May 08 Javascript
详解webpack 如何集成第三方js库
Jun 29 Javascript
js+html5实现页面可刷新的倒计时效果
Jul 15 Javascript
mpvue+vuex搭建小程序详细教程(完整步骤)
Sep 30 Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 Javascript
浅谈vue 二级路由嵌套和二级路由高亮问题
Aug 06 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
星际争霸中的对战模式介绍
2020/03/04 星际争霸
全国FM电台频率大全 - 15 山东省
2020/03/11 无线电
如何使用脚本模仿登陆过程
2006/11/22 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
php标签云的实现代码
2012/10/10 PHP
php防止伪造的数据从URL提交方法
2014/06/27 PHP
php获得网站访问统计信息类Compete API用法实例
2015/04/02 PHP
php开发时容易忘记的一些技术细节
2016/02/03 PHP
PHP中list方法用法示例
2016/12/01 PHP
PHP程序员简单的开展服务治理架构操作详解(三)
2020/05/14 PHP
js解析与序列化json数据(三)json的解析探讨
2013/02/01 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
JavaScript数组函数unshift、shift、pop、push使用实例
2014/08/27 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
javascript实现table选中的行以指定颜色高亮显示的方法
2015/05/13 Javascript
禁止按回车键提交表单的方法
2015/06/11 Javascript
微信小程序 Image API实例详解
2016/09/30 Javascript
jquery的父、子、兄弟节点查找,节点的子节点循环方法
2016/12/07 Javascript
微信小程序 动态绑定数据及动态事件处理
2017/03/14 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
浅谈react性能优化的方法
2018/09/05 Javascript
webpack4 升级迁移的实现
2018/09/12 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
nodeJs项目在阿里云的简单部署
2020/11/27 NodeJs
[42:24]完美世界DOTA2联赛循环赛 LBZS vs DM BO2第一场 11.01
2020/11/02 DOTA
使用go和python递归删除.ds store文件的方法
2014/01/22 Python
简单使用Python自动生成文章
2014/12/25 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Django 设置多环境配置文件载入问题
2020/02/25 Python
澳大利亚家具和家居用品在线商店:Interiors Online
2018/03/05 全球购物
德国婴儿服装和婴儿用品购买网站:Baby Sweets
2019/12/08 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
教师专业自荐书范文
2014/02/10 职场文书
户外亲子活动总结
2015/05/08 职场文书
《清澈的湖水》教学反思
2016/02/17 职场文书