请问微信小程序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上。

mode 属性:

默认值:scaleToFill —- 不保持纵横比例缩放图片,使图片的宽高完全拉伸至填满image标签

aspectFit —- 保持纵横比例缩放图片,使图片的长边能够完全显示出来,也就说图片可以完整的显示出来

aspectFill —– 保持纵横比例缩放图片,只保证图片的短边能够完全显示出来,也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取

top —- 不缩放图片,只显示图片的顶部区域

bottom —- 不缩放图片,只显示图片的底部区域

center —- 不缩放图片,只显示图片的中间区域

left —- 不缩放图片,只显示图片的左边区域

right —– 不缩放图片,只显示图片的右边区域

top left —- 不缩放图片,只显示图片的左上边区域

top right —- 不缩放图片,只显示图片的右上边区域

bottom left —- 不缩放图片,只显示图片的左下边区域

bottom right —- 不缩放图片,只显示图片的右下边区域

4.隐藏NavigationBar

5.VM11106:1 Do not have login handler in current page: pages/login/login. Please make sure that login handler has been defined in pages/login/login, or pages/login/login has been added into app.json

解决方案:

2.调整app.json中Pages里面的页面注册顺序 ;

3.检查wxml中bindtap是否在js里面将方法创建。

6.switch样式大小调整

大家都知道微信官方提供的switch 能改变color 但是改变大小 常用的width height 不起作用

但是可以这样修改

7.input 不沾满屏幕右侧有留白

使用flex布局的时候明明 input style 设置了flex=1 的属性 可是input还是站不满整个屏幕的宽度,右侧有留白,文字被遮挡, 不知道是不是一个bug,

解决方案: 在input外面包一层view style设置flex=1 用于沾满整个屏幕 input用于显示文字

————————————————

1.display取值

2.float(取值:left,right,none,inherit。)

3.clear:该属性指出不允许有浮动对象的边。(取值:left,right,both,none.)

4.visibility:是否显示对象(取值:visible,hidden,collapse。)

5.overflow:处理溢出内容的方式。(取值:visible,hidden,scroll,auto。)

其他属性:

1、fixed定位一个 image标签,width: 100vwheight: 100vhmode选择aspectFill

2、background-size: cover

     1)是按照图片的比例放大或者缩小至充满容器,而不是按照容器的比例大小来缩放。

      2)如果照片的比例和容器的比例是不一致的,必定会导致照片的不完整性。


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存