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


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 XMLHttpRequest对象全面剖析
Apr 24 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
在网页中使用document.write时遭遇的奇怪问题
Aug 24 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
调试代码导致IE出错的避免方法
Apr 04 Javascript
css与javascript跨浏览器兼容性总结
Sep 15 Javascript
node.js中的console.info方法使用说明
Dec 09 Javascript
JavaScript+html5 canvas绘制的小人效果
Jan 27 Javascript
js滑动提示效果代码分享
Mar 10 Javascript
基于JQuery和原生JavaScript实现网页定位导航特效
Apr 03 jQuery
Vue 解决在element中使用$notify在提示信息中换行问题
Nov 11 Javascript
详解JavaScript中分解数字的三种方法
Jan 05 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
PHP5在Apache下的两种模式的安装
2006/09/05 PHP
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
php过滤敏感词的示例
2014/03/31 PHP
php合并数组中相同元素的方法
2014/11/13 PHP
php实现的简单检验登陆类
2015/06/18 PHP
DOM操作一些常用的属性汇总
2015/03/13 Javascript
全面解析Bootstrap中Carousel轮播的使用方法
2016/06/13 Javascript
js控制文本框只能输入中文、英文、数字与指定特殊符号的实现代码
2016/09/09 Javascript
移动端点击态处理的三种实现方式
2017/01/12 Javascript
nodejs个人博客开发第五步 分配数据
2017/04/12 NodeJs
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
一次记住JavaScript的6个正则表达式方法
2018/02/22 Javascript
angularjs 的数据绑定实现原理
2018/07/02 Javascript
详解vue-cli3使用
2018/08/14 Javascript
如何从0开始用node写一个自己的命令行程序
2018/12/29 Javascript
vue实现行列转换的一种方法
2019/08/06 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
详解node.js 事件循环
2020/07/22 Javascript
浅谈JavaScript中this的指向问题
2020/07/28 Javascript
vue中实现点击变成全屏的多种方法
2020/09/27 Javascript
Python 绘图和可视化详细介绍
2017/02/11 Python
Python开发之Nginx+uWSGI+virtualenv多项目部署教程
2019/05/13 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Python中请不要再用re.compile了
2019/06/30 Python
使用Python在Windows下获取USB PID&amp;VID的方法
2019/07/02 Python
Django 多对多字段的更新和插入数据实例
2020/03/31 Python
django rest framework serializers序列化实例
2020/05/13 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
测绘工程本科生求职信
2013/10/10 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
网络技术专业求职信
2014/02/18 职场文书
小学英语复习计划
2015/01/19 职场文书
企业安全隐患排查治理制度
2015/08/05 职场文书
Nginx安装完成没有生成sbin目录的解决方法
2021/03/31 Servers
Python Django ORM连表正反操作技巧
2021/06/13 Python
如何打开Win11系统注册表编辑器?Win11注册表编辑器打开修复方法
2022/04/05 数码科技