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
}