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


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向上向下取整适合分页查询
Sep 06 Javascript
jQuery中attr()方法用法实例
Jan 05 Javascript
JS实现不规则TAB选项卡效果代码
Sep 16 Javascript
JS验证邮件地址格式方法小结
Dec 01 Javascript
基于JavaScript实现瀑布流效果(循环渐近)
Jan 27 Javascript
将json转换成struts参数的方法
Nov 08 Javascript
用js实现每隔一秒刷新时间的实例(含年月日时分秒)
Oct 25 Javascript
vue环境搭建简单教程
Nov 07 Javascript
浅谈Vue SPA 首屏加载优化实践
Dec 15 Javascript
解决vue打包后vendor.js文件过大问题
Jul 03 Javascript
Angular8引入百度Echarts进行图表分析的实现代码
Nov 27 Javascript
ES6新增的数组知识实例小结
May 23 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
德生PL330测评
2021/03/02 无线电
关于PHP结束标签的使用细节探讨及联想
2013/03/04 PHP
非常实用的php弹出错误警告函数扩展性强
2014/01/17 PHP
ThinkPHP中ajax使用实例教程
2014/08/22 PHP
PHP中UNIX时间戳和日期间的转换与计算实例
2014/11/19 PHP
PHP查询分页的实现代码
2017/06/09 PHP
laravel添加前台跳转成功页面示例
2019/10/22 PHP
JavaScript中判断原生函数检查function是否是原生代码
2014/09/09 Javascript
javascript实现playfair和hill密码算法
2014/12/07 Javascript
JavaScript中的this,call,apply使用及区别详解
2016/01/29 Javascript
AngularJS基础 ng-include 指令简单示例
2016/08/01 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
用js简单提供增删改查接口
2019/05/12 Javascript
JQuery使用属性addClass、removeClass和toggleClass实现增加和删除类操作示例
2019/11/18 jQuery
Vue组件化开发之通用型弹出框的实现
2020/02/28 Javascript
Javascript中Math.max和Math.max.apply的区别和用法详解
2020/08/24 Javascript
vue 二维码长按保存和复制内容操作
2020/09/22 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
wxPython 入门教程
2008/10/07 Python
Python3中exp()函数用法分析
2019/02/19 Python
Django的CVB实例详解
2020/02/10 Python
Python小白学习爬虫常用请求报头
2020/06/03 Python
Python Pillow(PIL)库的用法详解
2020/09/19 Python
css3实现波纹特效、H5实现动态波浪效果
2018/01/31 HTML / CSS
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
师范学院毕业生求职信范文
2013/12/26 职场文书
团干部培训方案
2014/06/03 职场文书
感恩老师演讲稿400字
2014/08/28 职场文书
公司总经理岗位职责
2015/04/01 职场文书
六种css3实现的边框过渡效果
2021/04/22 HTML / CSS
HTML中的表单Form实现居中效果
2021/05/25 HTML / CSS
CSS 伪元素::marker详解
2021/06/26 HTML / CSS
Python快速实现一键抠图功能的全过程
2021/06/29 Python
如何利用golang运用mysql数据库
2022/03/13 Golang
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫