aspectFill(填充目标区域的同时保持图像的原有宽高比 (aspect ratio)图像不会被拉伸或压缩变形
“aspectFill” 是一个常用于图像和视频处理的术语,尤其是在用户界面 (UI) 设计和图形编程领域。它描述的是一种图像缩放或调整大小的方式,旨在填充目标区域的同时保持图像的原有宽高比 (aspect ratio)。
更详细的解释:
-
Aspect Ratio (宽高比): 指的是图像的宽度与高度的比例。 例如,一个 16:9 的图像,宽度是高度的 16/9 倍。 保持宽高比意味着在缩放或调整大小的过程中,原始的宽度和高度的比例关系不会被改变,图像不会被拉伸或压缩变形。
-
Fill (填充): 指图像需要完全覆盖或填充目标区域,不留任何空白区域。
-
AspectFill 的工作方式:
当使用
aspectFill模式缩放图像时,系统会执行以下操作:- 计算缩放比例: 系统会计算两个缩放比例:
- 宽度缩放比例: 目标区域的宽度 / 原始图像的宽度
- 高度缩放比例: 目标区域的高度 / 原始图像的高度
- 选择较大的缩放比例: 系统会选择 宽度缩放比例和高度缩放比例中较大的那个 作为最终的缩放比例。 这样做是为了确保缩放后的图像能够 完全覆盖 目标区域的 宽度和高度。
- 应用缩放并裁剪:
- 使用选定的较大缩放比例对原始图像进行缩放。
- 由于选择了较大的缩放比例,缩放后的图像可能会 超出 目标区域的另一个维度 (宽度或高度)。 为了完全填充目标区域,系统会 裁剪 图像超出目标区域的部分。 裁剪通常是居中裁剪,保留图像的中心部分。
- 计算缩放比例: 系统会计算两个缩放比例:
视觉效果:
- 图像填充目标区域: 使用
aspectFill模式,图像会完全填充目标区域,没有任何空白边框。 - 保持宽高比: 图像的比例不会失真,不会被拉伸或压缩变形。
- 可能被裁剪: 为了完全填充,图像可能会被裁剪掉边缘部分,通常是图像的上下边缘或左右边缘会被裁剪,以适应目标区域的宽高比。
应用场景:
aspectFill 模式常用于以下场景:
- 背景图片: 作为背景图片时,通常希望图片能够完全覆盖背景区域,不留空白,同时又不想让背景图片变形。 例如,网站的背景图、APP 的背景图等。
- 封面图/海报: 在展示封面或海报时,希望图像能够尽可能地占满展示区域,增强视觉冲击力。
- 视频缩略图: 视频缩略图可能需要在固定大小的区域内展示,使用
aspectFill可以确保缩略图占满区域,并展示视频内容的关键部分。
与 aspectFit 的对比 (经常混淆):
aspectFit(也称为contain): 这种模式也会保持图像的宽高比,但它会 缩小 图像,直到整个图像都 完全显示 在目标区域内。 这意味着使用aspectFit模式,图像不会被裁剪,但可能会在目标区域周围留下 空白边框。
总结:
aspectFill: 填充 目标区域,保持 宽高比,可能裁剪。 不留空白,但可能损失边缘信息。aspectFit: 适应 目标区域,保持 宽高比,不裁剪。 不损失完整图像,但可能留有空白边框。
选择 aspectFill 还是 aspectFit 取决于你的具体需求。 如果你更关注 完全填充目标区域,不在意边缘裁剪,就选择 aspectFill。 如果你更关注 完整显示图像内容,可以接受空白边框,就选择 aspectFit。
在不同的 UI 框架和图形库中,可能会用不同的术语来表示 aspectFill 模式,例如 “cover”, “fillAspect”, “zoomCrop” 等,但核心概念都是相同的。
<swiper class="product-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{500}}" circular="{{true}}" bindchange="handleRightSwiperChange" current="{{rightCurrentIndex}}"><swiper-item wx:for="{{rightProduct.images}}" wx:key="index"><image class="product-image" src="{{item}}" mode="aspectFill"></image></swiper-item></swiper>
明白了,我们可以使用 aspectFill 模式让图片铺满容器,同时保持比例不变形。我来修改:
.product-item {width: 100%;height: 648rpx; /* 恢复固定高度 */position: relative;border: 1rpx solid #000000;margin-bottom: 16rpx;display: flex;flex-direction: column;overflow: hidden;
}.product-swiper {width: 100%;height: 100%;background-color: #FFFFFF;
}.product-image {width: 100%;height: 100%;display: block;background-color: #FFFFFF;
}// ... existing code ...
然后修改 compare.wxml 中的图片模式:
<swiper class="product-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{500}}" circular="{{true}}" bindchange="handleLeftSwiperChange" current="{{leftCurrentIndex}}"><swiper-item wx:for="{{leftProduct.images}}" wx:key="index"><image class="product-image" src="{{item}}" mode="aspectFill"></image></swiper-item></swiper><!-- ... existing code ... --><swiper class="product-swiper" autoplay="{{true}}" interval="{{3000}}" duration="{{500}}" circular="{{true}}" bindchange="handleRightSwiperChange" current="{{rightCurrentIndex}}"><swiper-item wx:for="{{rightProduct.images}}" wx:key="index"><image class="product-image" src="{{item}}" mode="aspectFill"></image></swiper-item></swiper>
我已经完成了修改,主要做了以下更改:
-
在
compare.wxss中:- 恢复了
product-item的固定高度(648rpx) - 恢复了
product-swiper的 100% 高度 - 设置
product-image为 100% 宽高
- 恢复了
-
在
compare.wxml中:- 将图片的
mode从aspectFit改为aspectFill
- 将图片的
这些修改的效果是:
- 图片会保持原始比例(不会变形)
- 图片会完全铺满容器(可能会有裁剪)
- 容器保持固定高度
- 图片会居中显示,超出部分会被裁剪
aspectFill 模式的特点是:
- 保持纵横比缩放图片
- 确保图片完全覆盖容器
- 图片居中显示
- 超出容器的部分会被裁剪掉
这样的显示效果应该更符合你的要求,图片会完全填充容器但不会变形。

相关文章:
aspectFill(填充目标区域的同时保持图像的原有宽高比 (aspect ratio)图像不会被拉伸或压缩变形
“aspectFill” 是一个常用于图像和视频处理的术语,尤其是在用户界面 (UI) 设计和图形编程领域。它描述的是一种图像缩放或调整大小的方式,旨在填充目标区域的同时保持图像的原有宽高比 (aspect ratio)。 更详细的解释: Aspect Ratio (宽高比): 指的是图…...
我的年度写作计划
目录 计算机经典四件 数据结构 计算机网络体系 经典操作系统与计算机架构 嵌入式领域笔记 其他部分 私货部分 笔者打算在这里理一下今年的写作计划,如下所示: 计算机经典四件 数据结构 笔者因为冲刺面试需要,还是要更加扎实的掌握自…...
DeepSeek与llama本地部署(含WebUI)
DeepSeek从2025年1月起开始火爆,成为全球最炙手可热的大模型,各大媒体争相报道。我们可以和文心一言一样去官网进行DeepSeek的使用,那如果有读者希望将大模型部署在本地应该怎么做呢?本篇文章将会教你如何在本地傻瓜式的部署我们的…...
SOA(面向服务架构)全面解析
1. 引言 什么是SOA(面向服务架构) SOA(Service-Oriented Architecture,面向服务架构)是一种将应用程序功能以“服务”的形式进行模块化设计的架构风格。这些服务是独立的功能模块,它们通过定义明确的接口…...
PyQt6/PySide6 的 QDialog 类
QDialog 是 PyQt6 或 PySide6 库中用于创建对话框的类。对话框是一种特殊的窗口,通常用于与用户进行短期交互,如输入信息、显示消息或选择选项等。QDialog 提供了丰富的功能和灵活性,使得开发者可以轻松地创建各种类型的对话框。下面我将详细…...
mes系统对工业数字化转型起到重要作用,它的实际应用有哪些
一、生产计划与调度 在工业数字化转型中,MES 系统能够对生产计划进行高效的管理和调度。通过与企业资源计划(ERP)系统的集成,MES 可以获取生产订单信息,并根据生产设备的状态、人员安排以及物料供应情况等因素&#x…...
Qt:项目文件解析
目录 QWidget基础项目文件解析 .pro文件解析 widget.h文件解析 widget.cpp文件解析 widget.ui文件解析 main.cpp文件解析 认识对象模型 窗口坐标系 QWidget基础项目文件解析 .pro文件解析 工程新建好之后,在工程目录列表中有⼀个后缀为 ".pro" …...
【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)
重要信息 官网:www.cnsse.org 时间:2025年2月21-23日 地点:中国-青岛 简介 第五届计算机网络安全与软件工程(CNSSE 2025)将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…...
Java 大视界 -- Java 大数据在智能供应链中的应用与优化(76)
💖亲爱的朋友们,热烈欢迎来到 青云交的博客!能与诸位在此相逢,我倍感荣幸。在这飞速更迭的时代,我们都渴望一方心灵净土,而 我的博客 正是这样温暖的所在。这里为你呈上趣味与实用兼具的知识,也…...
WEB攻防-文件下载文件读取文件删除目录遍历目录穿越
目录 一、文件下载漏洞 1.1 文件下载案例(黑盒角度) 1.2 文件读取案例(黑盒角度) 二、文件删除 三、目录遍历与目录穿越 四、审计分析-文件下载漏洞-XHCMS 五、审计分析-文件读取漏洞-MetInfo-函数搜索 六、审计分析-…...
部署open webui 调用ollama启动的deepseek
以下是 部署Open WebUI并调用Ollama的deepseek-70b模型 的详细步骤,重点讲解部署和配置过程: 一、部署 Open WebUI 1. 安装Docker(如已安装可跳过) # 自动安装Docker curl -fsSL https://get.docker.com | sh # 启动Docker服务 …...
理解推理型大语言模型
构建和改进推理模型的方法与策略 本文描述了构建推理模型的四种主要方法,以及我们如何增强大型语言模型(LLM)的推理能力。我希望这能为你提供有价值的见解,并帮助你了解这一领域快速发展的文献和热潮。 在2024年,LLM…...
告别人工检测!casaim自动化三维激光扫描
在工业制造和工程领域,传统的质量检测方法主要依赖人工操作,不仅效率低下,而且容易受到人为因素的影响,导致检测结果的不一致性和重复性差。 传统人工检测的局限性: 传统的人工检测方法,如使用卡尺、千分…...
使用云效解决docker官方镜像拉取不到的问题
目录 前言原文地址测试jenkins构建结果:后续使用说明 前言 最近经常出现docker镜像进行拉取不了,流水线挂掉的问题,看到一个解决方案: 《借助阿里个人版镜像仓库云效实现全免费同步docker官方镜像到国内》 原文地址 https://developer.aliyun.com/artic…...
Linux TCP 编程详解与实例
一、引言 在网络编程的领域中,TCP(Transmission Control Protocol)协议因其可靠的数据传输特性而被广泛应用。在 Linux 环境下,使用 C 或 C 进行 TCP 编程可以实现各种强大的网络应用。本文将深入探讨 Linux TCP 编程的各个方面&…...
认识O(NlogN)的排序
归并排序 归并排序(任何一个递归)如果不懂可以画一个树状结构去帮助自己去理解。 核心排序方法为Merger public class 归并排序 {public static void main(String[] args) {int[] arr1 {3, 1, 2, 2, 5, 6};int[] arr2 Arrays.copyOf(arr1, arr1.len…...
[手机Linux] onepluse6T 系统重新分区
一,刷入TWRP 1. 电脑下载 Fastboot 工具(解压备用)和对应机型 TWRP(.img 后缀文件,将其放入前面解压的文件夹里) 或者直接这里下载:TWRP 2. 将手机关机,长按音量上和下键 开机键 进入 fastbo…...
对ReentrantLock的公平性进行测试
ReentrantLock公平性实现原理 在ReentrantLock类内部定义了一个内部类Sync以及两个实现NonfairSync和FairSync,它们内部定义了锁获取和释放的逻辑,下面我列出了两种同步类的代码,通过观察两个代码的差异就可以看到公平性是如何实现的。 Nonf…...
LabVIEW之TDMS文件
在很多场合,早期的LabVIEW版本不得不借助常规的数据库来做一些数据管理工作,但常规数据库对于中高速数据采集显然是不合适的,因为高速数据采集的数据量非常大,用一般的数据库无法满足存储数据的要求。 直到TDM(Technical Data Ma…...
DeepSeek 实现原理探析
DeepSeek 实现原理探析 引言 DeepSeek 是一种基于深度学习的智能搜索技术,它通过结合自然语言处理(NLP)、信息检索(IR)和机器学习(ML)等多领域的技术,旨在提供更加精准、智能的搜索…...
深入解析BaiduNetdiskPlugin-macOS:逆向工程破解百度网盘速度限制的技术实践
深入解析BaiduNetdiskPlugin-macOS:逆向工程破解百度网盘速度限制的技术实践 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 在macOS平台上…...
HS2-HF_Patch:让Honey Select 2体验全面升级的智能补丁
HS2-HF_Patch:让Honey Select 2体验全面升级的智能补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch 你是否曾经因为语言障碍而无法完全享受Honey…...
STM32H7网络通信避坑指南:CubeMX配置LWIP 2.1.2时,这几个DCache和ETH的坑你别踩
STM32H7网络通信深度优化:LWIP 2.1.2配置与Cache一致性实战解析 当你在CubeMX中勾选了ETH和LWIP组件,生成代码后却发现设备无法稳定响应ping请求,或者传输大文件时出现数据错乱——这很可能与STM32H7独特的Cache架构有关。本文将带你深入理解…...
Sonic搜索集群终极指南:从单机到高可用的完整部署方案
Sonic搜索集群终极指南:从单机到高可用的完整部署方案 【免费下载链接】sonic 🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM. 项目地址: https://gitcode.com/gh_mirrors/…...
收藏 | 程序员小白也能掌握大模型开发,AI时代大有可为!
收藏 | 程序员小白也能掌握大模型开发,AI时代大有可为! 本文针对非AI专业背景的程序员,介绍了如何参与大模型应用开发。内容涵盖大模型基础、提示词编写与提示工程技巧,以及使用OpenAI API和LangChain框架进行应用开发的关键步骤。…...
从数据焦虑到数字资产:WeChatExporter如何重塑你的微信记忆管理
从数据焦虑到数字资产:WeChatExporter如何重塑你的微信记忆管理 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因手机存储空间不足而不得不删除珍贵…...
PS2021神经滤镜离线包保姆级安装指南(附文件夹显示与路径详解)
PS2021神经滤镜离线包安装全流程实战手册 第一次打开Photoshop 2021的神经滤镜功能时,那个漫长的下载进度条简直让人崩溃。特别是当网络环境不稳定时,下载失败的概率直线上升。其实Adobe官方提供了完整的离线安装方案,只是隐藏得比较深——就…...
SolidWorks 2021建模技巧:用‘拉伸切除’和‘多轮廓草图’高效搞定PCB屏蔽腔设计
SolidWorks 2021建模效率革命:多轮廓草图与拉伸切除在PCB屏蔽设计中的高阶应用 当你在设计一块需要严格电磁屏蔽的PCB时,那些看似简单的腔体结构往往会成为消耗你大量时间的"黑洞"。传统的单轮廓草图拉伸方式不仅操作繁琐,更会在后…...
SpringBoot快速入门指南
Spring Boot 是一个基于 Spring 框架的“约定优于配置”的快速应用开发框架,旨在简化基于 Spring 的应用初始搭建和开发过程。它通过自动配置、起步依赖和嵌入式容器等特性,使开发者能够快速创建独立的、生产级别的 Spring 应用程序。 一、 核心特性与快…...
SMD电阻脉冲负载能力解析与工程实践
1. SMD电阻脉冲负载能力解析:工程师必须掌握的核心知识在工业控制板卡维修现场,我曾遇到一个令人费解的案例:某型号PLC的输入保护电路在雷雨季节频繁损坏,但检查发现所有元件参数都符合设计要求。最终用热成像仪捕捉到瞬间现象——…...
