/* * @Author: abson * @Date: 2022-02-15 10:01:57 * @LastEditTime: 2022-03-02 11:44:11 * @LastEditors: Please set LastEditors * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AEet urkl * @FilePath: \MShopWeApp\packageB\pages\AI-test-skin\shoot_notice\shoot_notice.js */ // packageB/pages/AI-test-skin/shoot_notice/shoot_notice.js const app = getApp(); const request = app.request; const os = app.globalData; const setting = os.setting; const ut = require('../../../../utils/util'); Page({ /** * 页面的初始数据 */ data: { iurl: setting.imghost, notice_show: "", skin_type: 0, cWidth: 0, cHeight: 0, }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { let th = this; setTimeout(() => { th.setData({ notice_show: 'none', }) }, 3000) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, //从相册中选择图片 show_pai_pop: function () { let th = this; //选择和拍照一张图片 wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { let imgArr = res.tempFilePaths; // if (th.data.skin_type) { imgArr = res.tempFiles; } console.log(imgArr); getApp().globalData.skin_img_info = imgArr[0]; let url = "/packageD/pages/AI-test-skin/select_photo/select_photo"; app.goto(url); } }) }, //选择图片 takePhoto() { var that = this; wx.chooseImage({ count: 1, sizeType: ['compressed'], sourceType: ['album', 'camera'], success(res) { var tempFilePaths = res.tempFilePaths console.log(tempFilePaths); console.log(res.tempFiles[0].size / 1024 + 'kb'); var size1 =res.tempFiles[0].size; var size = res.tempFiles[0].size / 1024; //kb单位 // tempFilePath可以作为img标签的src属性显示图片 var img = tempFilePaths[0]; that.setData({ imagesrc: img, }) that.imgToMin(img, size,size1); //获取图片后压缩 }, fail(err) { console.log(err); } }) }, //图片转码64 base64(url, type) { var that = this; return new Promise((resolve, reject) => { wx.getFileSystemManager().readFile({ filePath: url, //选择图片返回的相对路径 encoding: 'base64', //编码格式 success: res => { resolve('data:image/' + type.toLocaleLowerCase() + ';base64,' + res.data) // console.log(res.data); // that.doDiscernment(res.data);//提交后台 }, fail: res => reject(res.errMsg) }) }) }, //缩放图片 imgToMin(img, size,size1) { var that = this; //size小于100kb 时 直接转码识别 if (size < 1024) { getApp().globalData.skin_img_info = { path:img, size, } let url = "/packageD/pages/AI-test-skin/select_photo/select_photo"; app.goto(url); // that.base64(img,"jpg"); return; } //先获取图片 然后根据长宽 缩小 之后获取图片 wx.getImageInfo({ src: img, success(res) { console.log(res.width) console.log(res.height) var ratio = size / 1024; size1 = size1 / ratio; var canvasWidth = res.width //图片原始长宽 var canvasHeight = res.height //while (canvasWidth > 375 || canvasHeight > 520){// 保证宽高在400以内 canvasWidth = Math.trunc(canvasWidth / ratio) canvasHeight = Math.trunc(canvasHeight / ratio) //ratio++; //} that.setData({ canvasWidth: canvasWidth, canvasHeight: canvasHeight }) console.log(canvasWidth) console.log(canvasHeight) //绘制图片 var ctx = wx.createCanvasContext('attendCanvasId') ctx.drawImage(img, 0, 0, canvasWidth, canvasHeight) ctx.draw(false, setTimeout(function () { wx.canvasToTempFilePath({ canvasId: 'attendCanvasId', width: canvasWidth, height: canvasHeight, destWidth: canvasWidth, destHeight: canvasHeight, fileType: 'jpg', success: function (res) { console.log(res.tempFilePath)//最终图片路径 that.setData({ canvasImgUrl: res.tempFilePath }); getApp().globalData.skin_img_info = { path:res.tempFilePath, size:size1 }; let url = "/packageD/pages/AI-test-skin/select_photo/select_photo"; app.goto(url); }, fail: function (res) { console.log("缩放图片失败"); console.log(res.errMsg) wx.hideLoading(); wx.showToast({ title: '识别图片失败', image: '../../utils/img/wrong.png', duration: 2000 }) that.setData({ title: "识别失败", }) } }, this) //要填写this对象,表示canvas这个对象 }, 1000)) //留一定的时间绘制canvas 否则会报错fail canvas is empty }, fail: function (res) { console.log("获取图片失败"); console.log(res.errMsg) wx.hideLoading(); wx.showToast({ title: '识别图片失败', image: '../../utils/img/wrong.png', duration: 2000 }) that.setData({ title: "识别失败", }) }, }) }, })