要知道原图片的长宽
要知道canvas的长宽
算出比例。先要判断原图片的宽度是不是大于高度,如果宽度大于高度,那么计算比例是canvas的宽度 / 原图片宽度 = 比例,假设原图宽度770,高度590,canvas是宽度600,高度300,那么比例就是 600 / 770 = 0.7792207792207793,用原图片的宽度乘以这个比例得出来就是600,770 * 0.7792207792207793 = 600,然后乘以高度 590 * 0.7792207792207793 = 459.7402597402598。如果高度比宽度的值大就把canvas的高度 / 原图片高度,最后用得出来的比例计算canvas高度和宽度。
用drawImage写入到canvas上。
wxml部分:<image src="../images/xwbanner.png" mode="widthFix" bindload="imageLoad" style="width:{{ images[index].width }}rpxheight:{{ images[index].height }}rpx" ></image>
wxss部分:
image{
width:100%;
}
js部分:
Page({
data: {
images:{}
},
imageLoad: function(e){
var $width=e.detail.width,//获取图片真实宽度
$height=e.detail.height,
ratio=$width/$height //图片的真实宽高比例
var viewWidth=718, //设置图片显示宽度,左右留有16rpx边距
viewHeight=718/ratio //计算的高度值
var image=this.data.images
//将图片的datadata-index作为image对象的key,然后存储图片的宽高值
image[e.target.dataset.index]={
width:viewWidth,
height:viewHeight
}
this.setData({
images:image
})
},
})
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)