请问微信小程序image设置了mode=‘aspectFill’,canvas怎么画出这效果?

请问微信小程序image设置了mode=‘aspectFill’,canvas怎么画出这效果?,第1张

要知道原图片的长宽

要知道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上。

小程序的image组件提供了缩放的模式选择,默认的scaletofill就是设置固定的宽高模式比较少使用,更多的是需要自适应宽高的情况。

widthfix多适用于通栏,width:100%,高度不同设备自适应的情况。此时会按照原图比列自动缩放高度,常用于轮播图。

aspectFill多用用在固定大小的范围内显示,区别是可以保留一边,除去通栏外一般用处较多。

个别情况下需要图片始终居中缩放,多用在用户头像圆环之类,一般留在保留中心内容的部分,文档中暂没,需要单独设置。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11653825.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存