【微信小程序】image组件的4种缩放模式与9种裁剪模式

简介: 假设有一个容器(这个容器的宽高就是设置的样式),要将图片放进去。而aspectFit的特点就是保持图片不变形,且容器要“刚好”将这个图片装进去。如果原始图片比容器大,就要被等比例缩小;如果原始图片比容器小,就会被等比例放大。一直放大或缩小到图片的某一条边刚好和容器的一条边重合。

3c28c4c6783644a6b3a41843d646db0e.gif


🏆今日学习目标:第九期——image组件的4种缩放模式与9种裁剪模式

😃创作者:颜颜yan_

✨个人主页:颜颜yan_的个人主页

⏰预计时间:20分钟

🎉专栏系列:微信小程序开发


前言


哈喽大家好,本次是微信小程序专栏的第九期。在项目中,我们经常要面对图片的尺寸结合设计图的尺寸不同的情况。在这种情况下,我们必须要有所舍弃,或放弃等比例,或裁剪掉图片的一部分。本期的主要内容是image组件的4种缩放模式与9种裁剪模式。


注意:每期内容是连载呢,建议大家可以看看往期内容,更好理解噢~


每种模式的字面意思都很好理解。要更改图片的裁剪或缩放模式,只需要给image组件加上一个mode属性值。

缩放模式


scaleToFill


不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image元素。


如下,当我们添加sacleToFill模式时,图片并没有发生任何变化。这是因为sacleToFill是缩放的默认模式,如果省略了mode,则小程序也会以sacleToFill的模式来缩放图片。


sacleToFill将改变图片的高宽比,强行让图片更改为样式指定的尺寸,使图片变形。当然,如果原始图片的宽高比例和要缩放的目标宽高比例相同,则不会变形,只是整体上放大或缩小了。


c5051df5b2d041858553361e11d62153.png

ff501d9d8f7141cda0af93d73bc94a0f.png


aspectFit


保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。


假设有一个容器(这个容器的宽高就是设置的样式),要将图片放进去。而aspectFit的特点就是保持图片不变形,且容器要“刚好”将这个图片装进去。如果原始图片比容器大,就要被等比例缩小;如果原始图片比容器小,就会被等比例放大。一直放大或缩小到图片的某一条边刚好和容器的一条边重合。


如下,原始图片大于容器,就会被等比例缩小。


c61cceec232542319672a17c9bcf3242.png

6d73da265f554740aacdb19410a8994c.png


aspectFill


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


这个模式同样保持图片的高宽比不会变形,但会让图片完全填满整个容器。如果原始图片尺寸大于容器,则需要等比例缩小,一边刚好接触容器,另外一边等于或超出容器,这样就可以完全填满了。


bf7eaf075a4f4b759066fd7226489302.png

5919e9d00a85487fb17ade0d538822a5.png


widthFix


宽度不变,高度自动变化,保持原图宽高比不变。


这个属性的特点是,图片不会按照设定的尺寸呈现,而是让宽缩放到指定尺寸,再动态计算高度。


73ffad2a84f6431ab73809546c72d69b.png

b9774fe140a74c248025fba351def284.png


剪裁模式


top


不缩放图片,只显示图片的顶部区域。


这个模式只保留了图片的上部,裁剪掉了剩余部分。如下可以发现,图片不仅裁掉了下面的部分,水平方向上也有裁剪,是由于这个模式不会缩放图片,所有我们设置的容器不能够在水平方向上完全把图片放进去,进而水平方向上也发生了裁剪。


ca62b3157b524a73933a26cb928ee4ac.png

9f281afc51c046efa96e3b5f86038448.png


bottom


不缩放图片,只显示图片的底部区域。


df10fa6449b748e992267109794c0425.png

e5f72d0ee4e3434b841bc6f323b37aef.png


center


不缩放图片,只显示图片的中间区域。


fc5b7576211c46ecb4a41f8f162665de.png

8a1a3afbd0024307b168fdb7a0710df2.png


left


不缩放图片,只显示图片的左边区域。


1d6f2cc76dce42eab874cb6e3ef290e4.png

4e6e1fa95fd84afe903263f7b207813b.png


right


不缩放图片,只显示图片的右边区域。


49697d4a723e415abfe6f628a861a200.png

22c9ee0e2ea245b0ad5f78f09c9da524.png


top left


不缩放图片,只显示图片的左上边区域。


cfd40f88701c443998f13aa3388558df.png

2bf6b8efde504513bfa9e9972c6b4e5e.png


top right


不缩放图片,只显示图片的右上边区域。


5e2fc5e2426c44f2ab2adf1e4a000d87.png

9e38cfaa1db0419aa69f2582ea9f1e34.png


bottom left


不缩放图片,只显示图片的左下边区域。


6cb3d0fcc2f04e778a1e98982960d4d3.png

442961a4efb7462498be4e231ed829e0.png


bottom right


不缩放图片,只显示图片的右下边区域。


6116765ac5fd4c15a6ed3dc807f23338.png

d80f894943eb49f28f6645d6fb96914e.png


总结


以上就是今天的学习内容啦~

如果有兴趣的话可以订阅专栏,持续更新呢~

咱们下期再见~


d20e640404404cc6bc5d1f8ab9683a3a.gif

相关文章
|
JSON 小程序 数据格式
微信小程序默认的文字内容在左上角怎么办?带你0基础快速了解skyline渲染模式。
本文主要介绍微信小程序开发中遇到的问题及其解决方法。问题通常由微信小程序自带的Skyline渲染模式引起,而非代码编写错误。解决步骤包括:1. 找到全局配置文件app.json;2. 去掉相关配置项;3. 修改后的配置示例。通过这些步骤可以有效解决文字内容顶格或覆盖的问题。文中还提供了进一步了解Skyline渲染模式的链接,帮助开发者深入理解其原理和应用。
1710 59
|
小程序 数据安全/隐私保护 UED
创新陪玩代练模式:小程序源码软件开发的挑战与机遇
随着互联网娱乐行业的蓬勃发展,陪玩代练服务成为新兴休闲娱乐方式,满足玩家在游戏、学习、健身等多方面的陪伴与指导需求。小程序作为连接玩家与陪玩人员的平台,面临技术实现难度(如实时语音通信、高并发处理)、数据安全、功能多样化及用户体验优化等挑战,同时也孕育着巨大机遇。市场竞争激烈,小程序需具备独特卖点以脱颖而出。
482 0
创新陪玩代练模式:小程序源码软件开发的挑战与机遇
|
人工智能 编解码 小程序
【一步步开发AI运动小程序】二十、AI运动小程序如何适配相机全屏模式?
本文探讨了小程序`camera`组件在全屏模式下的适配问题及其解决方案。由于`camera`组件存在预览图像裁切特性,可能导致入镜检测与预览不一致、骨骼图与人体不重合等问题。通过分析其裁剪逻辑(长边按比缩放,短边居中裁切),我们提供了计算裁剪比例和留白的适配方法,并优化了插件特性以支持全屏应用。同时,文章还讨论了全屏模式可能带来的副作用,如人体可视区域变小、检测范围变化及抽帧帧率下降等,并给出了改进建议。该方案适用于云上赛事、健身锻炼、AI体测、AR互动等场景,助力提升用户体验和UI布局合理性。
|
小程序 数据可视化 JavaScript
微信小程序:轻松实现时间轴组件
本文介绍了如何在微信小程序中实现一个可视化时间轴组件。该组件适用于展示用户资金流动、投资结算等时间节点,帮助用户直观了解资金去向。时间轴支持自定义节点形状、显示序号、倒序排列等功能,并通过插槽灵活定义动态内容。文中详细介绍了组件的设计与使用方法,以及如何结合动态 slot 实现自定义操作。该组件为展示用户资金信息提供了美观、易用的解决方案。
1152 1
微信小程序:轻松实现时间轴组件
|
安全 API 开发者
微信开发者工具里面没有企业微信模式
企业微信与普通微信在应用场景和开发体系上存在本质区别,主要体现在身份认证、功能丰富性和开放能力等方面。企业微信开发需使用特定的API和工具,本文介绍了企业微信开发的基本步骤、特点及开发进度安排,帮助开发者更好地理解和应用企业微信的开发环境。
|
小程序 前端开发 JavaScript
在线课堂+工具组件小程序uniapp移动端源码
在线课堂+工具组件小程序uniapp移动端源码
551 0
在线课堂+工具组件小程序uniapp移动端源码
|
小程序
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
微信小程序动态tabBar实现:基于自定义组件,灵活支持不同用户角色与超过5个tab自由组合(更新版)
3375 1
|
小程序 前端开发 JavaScript
微信小程序图表制作利器:ECharts组件的使用与技巧
微信小程序图表制作利器:ECharts组件的使用与技巧
2062 1
|
缓存 小程序 索引
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
uni-app开发微信小程序时vant组件van-tabs的使用陷阱及解决方案
1367 1
|
小程序 搜索推荐 API
微信小程序:自定义关注公众号组件样式
尽管关注公众号组件的样式固定且不可修改,但产品经理的需求却需要个性化的定制。在这种情况下,我们需要寻找解决方案,以满足这些特殊需求,尽管这可能有点棘手。
1574 0
微信小程序:自定义关注公众号组件样式