亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 課堂 > 小程序 > 正文

微信小程序實現拍照畫布指定區域生成圖片

2020-03-21 15:51:24
字體:
來源:轉載
供稿:網友

最近寫識別行駛證功能,點擊拍照把指定區域截取,生成圖片功能。

系統相機。該組件是原生組件,使用時請注意相關限制。 掃碼二維碼功能,需升級微信客戶端至6.7.3。

微信小程序Camera相機地址

我們看下效果:

微信小程序,拍照,畫布

1、首先生成一個CanvasContext:

/** * 生命周期函數--監聽頁面加載 */ onLoad: function(options) { requireJs.adaptionIphoneX(this);  this.ctx = wx.createCameraContext()  },

2、相機的 wxml樣式

微信小程序,拍照,畫布

<camera wx:if='{{isShowCamera}}' device - position="width" flash="off" style="width:{{windowWidth}}px; height:{{windowHeight}}px;">  <cover-view class='camerabgImage-view'>  <cover-image class='bgImage' src='{{isIphoneX==true?"../../myImage/vehicle/biankuang_x.png":"../../myImage/vehicle/biankuang.png"}}'> </cover-image>   <cover-view class='cameratop-view1'>中華人民共和國機動車行駛證</cover-view>  <cover-view class='cameratop-view2'>(行駛證主頁)</cover-view>  <cover-view class='cameracenter-view' style='top:{{isIphoneX==true?"52%":"62%"}}'>請對準左下角發證機關印章</cover-view>   <!-- 拍照按鈕 -->   <cover-view class='camerabotton-view' style='bottom:{{isIphoneX==true?"75px":"0px"}}'>  <cover-image class='cancelphoto' src='../../myImage/vehicle/quxiao.png' bindtap='cancelPhotoAction'></cover-image>  <cover-image class='takephoto' src='../../myImage/vehicle/paizhao.png' bindtap='takePhotoAction'></cover-image>    <cover-view class='skipphoto' bindtap='skipphotoAction'>{{skipphotoStatus==1?"跳過":""}}  </cover-view>    </cover-view>  </cover-view>  </camera>  <canvas wx:if='{{isShowImage}}' canvas-id="image-canvas" style='width:{{windowWidth}}px; height:{{windowHeight}}px;'></canvas>

3、相機的 wxss樣式

.camerabgImage-view{ height: 100%; width: 100%; position:absolute;}.bgImage{ width: 100%; height: 100%; position: absolute;} .cameratop-view1{ margin-top: 174rpx;}.cameratop-view2{ margin-top: 220rpx;}.cameratop-view1, .cameratop-view2{ width: 100%; display: flex; justify-content: center; position: absolute;  font-family: PingFangSC-Medium; font-size: 36rpx; color: #FFFFFF; letter-spacing: 0; text-align: center;} .cameracenter-view{ height: 44rpx; width: 100%; position: absolute;  font-family: PingFangSC-Medium; font-size: 32rpx; color: #FFFFFF; letter-spacing: 0; text-align: center;} /* 底部 */.camerabotton-view{ height: 200rpx; width: 100%; position:absolute;  display: flex; justify-content: space-around; align-items: center;}.cancelphoto{ width: 50rpx; height: 50rpx;}.takephoto{ width: 132rpx; height: 132rpx;}.skipphoto{ font-family: PingFangSC-Regular; font-size: 32rpx; color: #FFFFFF; letter-spacing: 0; text-align: center;}

4、js 中訪問原生組件 camera  主要針對相機權限處理

微信小程序權限地址

onShow: function() { var that = this wx.authorize({  scope: 'scope.camera',  success: function (res) {  that.setData({   isShowCamera: true,  })  },  fail: function (res) {  console.log("" + res);  wx.showModal({   title: '請求授權您的攝像頭',   content: '如需正常使用此小程序功能,請您按確定并在設置頁面授權用戶信息',   confirmText: '確定',   success: res => {   if (res.confirm) {    wx.openSetting({    success: function (res) {     console.log('成功');     console.log(res);     if (res.authSetting['scope.camera']) { //設置允許獲取攝像頭     console.log('設置允許獲取攝像頭')     wx.showToast({      title: '授權成功',      icon: 'success',      duration: 1000     })     that.setData({      isShowCamera: true,     })      } else { //不允許     wx.showToast({      title: '授權失敗',      icon: 'none',      duration: 1000     })     wx.redirectTo({      url: 'addCarInfo/addCarInfo',     })     }    }    })   } else { //取消    wx.showToast({    title: '授權失敗',    icon: 'none',    duration: 1000    })    wx.redirectTo({    url: 'addCarInfo/addCarInfo',    })   }   }  })   } }) },

5、頁面初始化數據

/** * 頁面的初始數據 */ data: { isShowCamera: false, width: 10, height: 10, src: "", image: "", skipphotoStatus: "0",// 1跳過 0沒有跳過 isShowImage: false },

 6、點擊拍照 設置照片, 返回拍照圖片

/** * 拍照 */ takePhotoAction: function() { var that = this that.ctx.takePhoto({  quality: 'high', //高質量  success: (res) => {  this.loadTempImagePath(res.tempImagePath);  }, }) },

 7、針對原圖片截取尺寸 與 截取后的圖片

 loadTempImagePath: function(options) { var that = this that.path = options wx.getSystemInfo({  success: function(res) {   // 矩形的位置  var image_x = 15;  var image_y = 150;  var image_width = that.data.width - 2 * 15;  var image_height = 238;   wx.getImageInfo({   src: that.path,   success: function(res) {   that.setData({    isShowImage: true,   })   that.canvas = wx.createCanvasContext("image-canvas", that)   //過渡頁面中,圖片的路徑坐標和大小   that.canvas.drawImage(that.path, 0, 0, that.data.width, that.data.height)   wx.showLoading({    title: '數據處理中...',    icon: 'loading',    duration: 10000   })   // 這里有一些很神奇的操作,總結就是MD拍出來的照片規格居然不是統一的過渡頁面中,對裁剪框的設定   that.canvas.setStrokeStyle('black')   that.canvas.strokeRect(image_x, image_y, image_width, image_height)   that.canvas.draw()   setTimeout(function() {    wx.canvasToTempFilePath({ //裁剪對參數    canvasId: "image-canvas",    x: image_x, //畫布x軸起點    y: image_y, //畫布y軸起點    width: image_width, //畫布寬度    height: image_height, //畫布高度    destWidth: image_width, //輸出圖片寬度    destHeight: image_height, //輸出圖片高度    success: function(res) {     that.setData({     image: res.tempFilePath,     })     //清除畫布上在該矩形區域內的內容。     // that.canvas.clearRect(0, 0, that.data.width, that.data.height)     // that.canvas.drawImage(res.tempFilePath, image_x, image_y, image_width, image_height)     // that.canvas.draw()     wx.hideLoading()      console.log(res.tempFilePath);     //在此可進行網絡請求     PublicJS.drivinglicenseUpload(res.tempFilePath, that.uploadFile);    },    fail: function(e) {     wx.hideLoading()     wx.showToast({     title: '出錯啦...',     icon: 'loading'     })     if (this.data.skipphotoStatus == 1) {     wx.redirectTo({      url: 'addCarInfo/addCarInfo',     })     } else {     wx.navigateBack({      delta: 1     });     }    }    });   }, 1000);   }  })  } }) }, // 接口返回結果 uploadFile: function(data) {}

 微信小程序Canvas畫布地址

1.canvas組件是由客戶端創建的原生組件,它的層級是最高的。

2.請勿在scroll-view中使用canvas組件。

3.css動畫對canvas組件無效。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持VEVB武林網。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本免费久久高清视频| 日韩中文有码在线视频| 91在线网站视频| 久久综合免费视频影院| 久久人人爽人人爽爽久久| 正在播放欧美一区| 色婷婷成人综合| 亚洲欧洲在线看| 亚洲淫片在线视频| 日韩av资源在线播放| 国产欧美一区二区三区视频| 亚洲精品电影网在线观看| 亚洲精品福利免费在线观看| 国产精品美女免费看| 国产精品观看在线亚洲人成网| 色樱桃影院亚洲精品影院| 日韩麻豆第一页| 国产精品国模在线| 日韩av在线导航| 日韩在线中文视频| 国产精品三级久久久久久电影| 国产精品久久久久7777婷婷| 国产亚洲精品久久久久久777| 成人免费看黄网站| 91精品国产综合久久久久久久久| 91高清视频免费观看| 国产视频丨精品|在线观看| 中文字幕日韩欧美在线| 欧美极品在线视频| 精品久久久视频| 欧美国产亚洲精品久久久8v| 日韩av影视综合网| 色吧影院999| 日韩av免费网站| 在线视频免费一区二区| 国产精品自拍网| 欧美二区在线播放| 日韩精品在线观看一区| 在线播放亚洲激情| 一区二区三区视频免费在线观看| 欧美视频13p| 欧美一乱一性一交一视频| 91久久久久久久| 成人精品视频在线| 欧美精品一区二区三区国产精品| 热re91久久精品国99热蜜臀| 欧美劲爆第一页| 欧美乱大交做爰xxxⅹ性3| 欧美黑人巨大xxx极品| 国产精品白嫩美女在线观看| 欧美在线一级va免费观看| 黄色精品在线看| 久久黄色av网站| 日韩在线观看免费高清| 欧美视频在线免费| 久久久999成人| 国产精品一区二区三区免费视频| 欧美一区二粉嫩精品国产一线天| 久久久免费观看视频| 亚洲精品一区二区网址| 国产精品狠色婷| 欧美大荫蒂xxx| 亚洲第一页自拍| 成人国产亚洲精品a区天堂华泰| 国产精品欧美久久久| 亚洲欧美日韩视频一区| 91免费的视频在线播放| 国产成人精品日本亚洲| 日韩欧美国产一区二区| 亚洲国产美女久久久久| 亚洲国产欧美一区| 久久精品久久久久电影| 亚洲天堂男人天堂女人天堂| 亚洲欧洲一区二区三区在线观看| 成人免费视频xnxx.com| 日韩在线免费av| 最近2019年日本中文免费字幕| 国产视频在线一区二区| 91夜夜未满十八勿入爽爽影院| 欧美一级黑人aaaaaaa做受| 国产欧洲精品视频| 国产精品扒开腿做爽爽爽的视频| 日韩国产高清视频在线| 国产亚洲激情视频在线| 久久精品视频播放| 久久夜色精品国产亚洲aⅴ| 欧美裸身视频免费观看| 亚洲爱爱爱爱爱| 国产日韩欧美中文| 中文欧美在线视频| 亚洲成人中文字幕| 日韩av手机在线观看| 国产欧美日韩精品丝袜高跟鞋| 亚洲一区二区免费| 不卡毛片在线看| 久久亚洲国产精品| 国产精品成人观看视频国产奇米| 欧美精品videos| 国产v综合v亚洲欧美久久| 亚洲欧美精品一区二区| 亚洲电影免费观看高清| 亚洲福利在线观看| 91理论片午午论夜理片久久| 91国内揄拍国内精品对白| 成人黄色午夜影院| 亚洲欧美日韩在线一区| 国产在线精品自拍| 亚洲精品中文字幕女同| 亚洲激情 国产| 欧美成人免费观看| 在线播放国产一区中文字幕剧情欧美| 中文字幕视频一区二区在线有码| 欧美精品一本久久男人的天堂| 成人国产精品久久久久久亚洲| 日韩电影免费在线观看| 在线成人一区二区| 国a精品视频大全| 日韩欧美高清视频| 久久久午夜视频| 国产精品入口夜色视频大尺度| 亚洲性xxxx| 色天天综合狠狠色| 国产日韩欧美在线| 自拍偷拍亚洲精品| 欧美性猛交xxxx免费看漫画| 欧美午夜视频一区二区| 中文字幕亚洲色图| 国产精品91免费在线| 成人精品一区二区三区| 国产欧美一区二区三区久久人妖| 国产精品白丝av嫩草影院| 亚洲综合日韩在线| 日韩国产欧美区| 亚洲综合中文字幕在线观看| 午夜美女久久久久爽久久| 欧美另类极品videosbestfree| 国产视频观看一区| 亚洲激情久久久| 欧美老女人性生活| 另类美女黄大片| 欧美日韩精品二区| 欧美精品在线第一页| 青草热久免费精品视频| 一本色道久久综合亚洲精品小说| 一本久久综合亚洲鲁鲁| 欧美午夜精品久久久久久久| 91沈先生在线观看| 日韩福利伦理影院免费| 欧美性猛交xxxx乱大交| 国产在线日韩在线| 日韩av最新在线观看| 日韩av在线免费观看| 国产伦精品一区二区三区精品视频| 欧美日韩亚洲精品一区二区三区| 国产精品h片在线播放| 国内精品免费午夜毛片| 亚洲精品欧美日韩| 91精品国产一区| 国产日韩在线亚洲字幕中文| 日韩在线中文视频| 性色av一区二区三区红粉影视| 国内精品一区二区三区| 最新69国产成人精品视频免费| 亚洲成人久久久久|