Qt使用QImage打开图片,图片大小超出窗口显示范围,对图片进行缩小显示,缩小时维持图片的原比例,使宽或高其中的一个等于显示控件的宽或高,且全部显示在可显示范围 内;如果图片原宽和高的比例等于显示控件的宽和高的比例,则正好填充;如果图片的原始宽和高均小于显示控件的宽和高,则不对图片进行缩放。

使用QImage打开图片,显示在QLabel控件内,label_width 和 label_height  表示显示控件的宽和高,temp_image 表示打开的图片。

float scale_w = label_width_ / temp_image->width();  //宽的比例
float scale_h = label_height_ / temp_image->height();  //高的比例  float new_width, new_height;  //新的宽和高
if ((label_width_ >= temp_image->width()) && (label_height_ >= temp_image->height()))  //图片的原始宽和高均小于显示控件的宽和高
{  new_width = temp_image->width();  new_height = temp_image->height();
}
else if (scale_w > scale_h)
{  new_width = temp_image->width() * scale_h;  new_height = temp_image->height() * scale_h;
}
else if (scale_w <= scale_h)
{   new_width = temp_image->width() * scale_w;  new_height = temp_image->height() * scale_w;
}  

Qt打开图片,维持原宽高比,适应窗口相关推荐

  1. 【uni-app】动态计算图片高度且保持宽高比

    前言 图片容器宽度已确定 图片加载后,将图片容器按照图片的宽高比设置高度 思路 图片容器宽度已确定. uni-app的image组件,将mode设置为scaleToFill(不保持纵横比缩放图片,使图 ...

  2. html背景图片div设置宽自动,CSS背景图片固定宽高比自适应调整的实现方法

    标签可以使图片在保持宽高比不变的情况下自动调整.我们讨论的是div的背景图片实现固定宽高比自适应调整的方法.这里的图片不是< img>标签一样通过src引入,而是通过css的backgro ...

  3. html图片固定高宽比显示,科技常识:CSS背景图片固定宽高比自适应调整的实现方法...

    今天小编跟大家讲解下有关CSS背景图片固定宽高比自适应调整的实现方法 ,相信小伙伴们对这个话题应该有所关注吧,小编也收集到了有关CSS背景图片固定宽高比自适应调整的实现方法 的相关资料,希望小伙伴们看 ...

  4. 微信小程序图片高度按照图片真实宽高比自适应

    原理:image组件bindload属性 前端在按照设计图定的宽度做好图片的宽高之后,如果图片的原始宽高比对应不上,那么图片就会出现拉伸变形的情况,虽然微信小程序有mode属性可以对图片进行适应,但是 ...

  5. 图像分辨率、像素和宽高比有什么区别?如何在线修改图片尺寸大小?

    我们生活中总会遇到各种各样关于图片的名词,比如图像分辨率.像素.宽高比,那么这些词语都是什么意思呢,我们在修改图片尺寸大小的时候究竟应该修改哪个维度的尺寸?在修改图片尺寸前该如何选择合适的图片尺寸?如 ...

  6. 照片宽高比怎么设置_视频号在哪里打开?怎么开通视频号?98页的视频号运营手册请收好...

    有不少小伙伴发现,发布朋友圈时,除了可以选择"拍摄"和"相册选择"这两个选项发布视频外,新增了"从视频号选择60秒视频",也有很多博主尝了鲜 ...

  7. Flutter图片获取正确的图片宽高比(照片方向)

    使用image库,代码如下 var _imageBytes = await imageFile.readAsBytes();var image = imgLib.decodeImage(_imageB ...

  8. 利用opencv+QT打开并显示图片

    ``` // 利用opencv+QT打开并显示图片// 头文件在添加 #include "qlabel.h" // opencv #include <opencv2\core ...

  9. Qt实现简单项目——打开图片

    实现功能:通过按钮打开本地图片并显示. 效果如下: 步骤: 1.新建工程 点击"new"新建,选择QT窗体应用,如下图所示 给工程命名,注意名字中不要带有中文,选择保存路径,下一步 ...

最新文章

  1. Spring Cloud微服务实战:手把手带你整合eurekazuulfeignhystrix
  2. mysql如果索引为uid间隙锁_mysql 开发进阶篇系列 10 锁问题 (使用“索引或间隙锁”的锁冲突)...
  3. 自己在CODING过程中遇到的问题以及解决(C/VC)
  4. php生成gz文件,如何使用PHP创建.gz文件?
  5. 第2章 fping、hping应用
  6. windows下memcache的安装总结
  7. 从新获取jar_SpringBoot配置文件放在jar外部
  8. python展示全部好友_利用Python网络爬虫抓取微信好友的签名及其可视化展示
  9. [bzoj 3110] [ZJOI2013] K大数查询
  10. 浅议一种低成本的48V蓄电池组电压电流采集模块
  11. mongoDB下载安装
  12. 外显子bed文件获取
  13. Android支付宝刷步数,蚂蚁森林刷步数小技巧(一键修改支付宝步数)
  14. flash 和 eeprom 区别和关系、nor flash和nand flash区别
  15. 2021年信创产业融资分析报告
  16. js按钮绑定点击事件
  17. 小试牛刀 python股票查询程序
  18. Android _《看完不忘系列》之Retrofit,android面试题及答案2019
  19. 让域控制器向DNS服务器注册SRV记录
  20. 反编译828D PLC的工程文件(*.ptp)

热门文章

  1. Kubernetes 健康检查之 Readiness 就绪检查
  2. XAMPP简介、安转、使用
  3. 如何将电脑文件同步备份到u盘或移动硬盘?
  4. 计算机网络流量监控设计方案,计算机网络流量监控的设计.pdf
  5. Python_对折多少次超过珠峰
  6. poj 2942 Knights of the Round Table(双连通分量+tarjan+二分图判定)
  7. 软件测试工程师面试题总结
  8. html手抄报怎么制作软件,怎么制作Word电子小报?
  9. python爬虫学习(8) —— 关于4399的一个小Demo
  10. 43.10. Google Authenticator - Android Apps on Google Play