微信小程序开发 图片等比例缩放

2019-04-15 16:50发布

1.pic.wxml 2.pic.js// pages/userCenter/pages/pic/pic.js var util = require('../../../../utils/util.js'); Page({ /** * 页面的初始数据 */ data: { img_url:"", imagewidth: 0,//缩放后的宽 imageheight: 0,//缩放后的高 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { let url = options.img_url; this.setData({ 'img_url': url }) }, getCanvasData:function(){ //根据图片绘制画布 const ctx = wx.createCanvasContext('myCanvas'); ctx.drawImage(this.data.img_url, 0, 0, this.data.imagewidth, this.data.imageheight) ctx.draw(); }, imageLoad: function (e) { //按屏幕缩放图片 var imageSize = util.imageUtil(e); this.setData({ imagewidth: imageSize.imageWidth, imageheight: imageSize.imageHeight }) this.getCanvasData();//绘制画布 } })3.util.jsfunction imageUtil(e) { var imageSize = {}; var originalWidth = e.detail.width;//图片原始宽 var originalHeight = e.detail.height;//图片原始高 var originalScale = originalHeight / originalWidth;//图片高宽比 //获取屏幕宽高 wx.getSystemInfo({ success: function (res) { var windowWidth = res.windowWidth; var windowHeight = res.windowHeight; var windowscale = windowHeight / windowWidth;//屏幕高宽比 if (originalScale < windowscale) {//图片高宽比小于屏幕高宽比 //图片缩放后的宽为屏幕宽 imageSize.imageWidth = windowWidth; imageSize.imageHeight = (windowWidth * originalHeight) / originalWidth; } else {//图片高宽比大于屏幕高宽比 //图片缩放后的高为屏幕高 imageSize.imageHeight = windowHeight; imageSize.imageWidth = (windowHeight * originalWidth) / originalHeight; } } }) console.log('缩放后的宽: ' + imageSize.imageWidth) console.log('缩放后的高: ' + imageSize.imageHeight) return imageSize; } module.exports = { imageUtil: imageUtil }