代码如下:

 QImage Image;Image.load("d:/test.jpg");QPixmap pixmap = QPixmap::fromImage(Image);int with = ui->labPic->width();int height = ui->labPic->height();QPixmap fitpixmap = pixmap.scaled(with, height, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);  // 饱满填充//QPixmap fitpixmap = pixmap.scaled(with, height, Qt::KeepAspectRatio, Qt::SmoothTransformation);  // 按比例缩放ui->labPic->setPixmap(fitpixmap);

介绍:
scaled方法有几个参数需要介绍,方法原型:

QPixmap scaled(const QSize &s, Qt::AspectRatioMode aspectMode = Qt::IgnoreAspectRatio,Qt::TransformationMode mode = Qt::FastTransformation) const;

参数一: 放大的size
参数二:枚举值

enum AspectRatioMode
{IgnoreAspectRatio,KeepAspectRatio,KeepAspectRatioByExpanding
}

IgnoreAspectRatio 矩形框有多大,图片就缩放成多大,不限制原图片的长宽比
KeepAspectRatio 保持原图片的长宽比,且不超过矩形框的大小
KeepAspectRatioByExpanding 根据矩形框的大小最大缩放图片

参数三:枚举值

    enum TransformationMode {FastTransformation,SmoothTransformation};

FastTransformation 快速缩放,

SmoothTransformation 平滑缩放

但是如果你用缩放函数去做大图片的缩略图可能会发现”快速缩放”得到的图片质量不佳, 而”平滑缩放”质量很好但速度欠佳, 特别是原图非常大的时候smoothscale简直就是个噩梦阿。 这里就可以使用被称为“Cheat Scaling”的缩小图片的技巧了, 那就是先使用”快速缩放”得到一个中等大小的图片以获得较快的缩放速度, 再使用”平滑缩放”缩小至需要的大小以获得较好的图片质量。

 QImage result = img.scaled(800, 600).scaled(200, 150, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);

一个公认比较好的方法是,先缩至缩略图4倍大小, 再进一步平滑缩放。 如果图片过大经过测试, 该算法甚至比“快速缩放”还要略快, 却能获得和“平滑缩放”极其接近的最终结果。

本文福利, 免费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块等等)↓↓↓↓↓↓见下面↓↓文章底部点击免费领取↓↓

Qt开发——图片缩放简述相关推荐

  1. Qt开发 — 图片缩放简述

    代码如下 QImage Image;Image.load("d:/test.jpg");QPixmap pixmap = QPixmap::fromImage(Image);int ...

  2. QT实现图片缩放的同时标记指定坐标

    本文以我的另一篇文章<QT实现图片缩放>为基础,连接为:https://blog.csdn.net/weixin_43935474/article/details/89327314 现在有 ...

  3. FireMonkey开发: 图片缩放

    图片缩放 FM的TBitmap增加了CreateThumbnail http://docwiki.embarcadero.com/Libraries/XE2/en/FMX.Types.TBitmap. ...

  4. Android安卓开发中图片缩放讲解

    安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...

  5. QT学习笔记(三)——vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放

    vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放 之前写了一个博客讲怎么显示一张影像,那个是基于Qpainter的 今天使用QLabel来显示影像,并且用鼠标滚轮控制缩放. 关于图像的打 ...

  6. PyQt5实现图片缩放、旋转

    下面讲述PyQt5实现图片缩放.旋转的两种方式 第一种基于鼠标滚轮缩放,左右键移动 pyqt5实现过程如下 # -*- coding: utf-8 -*-from PyQt5 import QtCor ...

  7. [转]使用QT开发GoogleMap瓦片显示和下载工具

    第一节 之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背 ...

  8. [Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印

        前一篇文章讲述了Android实现图片Matrix矩阵类缩放.旋转.对比度.亮度.饱和度处理,但是真正的图片软件都是使用触屏实现图片缩放.移动.添加水印等功能,所以该篇文章主要通过setOnT ...

  9. Android图片缩放方法

    方法1:按固定比例进行缩放 在开发图片浏览器等 软件是,很多时候要显示图片的缩略图,而一般情况下,我们要将图片按照固定大小取缩略图,一般取缩略图的方法是使用BitmapFactory的 decodeF ...

  10. c#图像处理、图片拼接、图片裁剪、图片缩放、图上添加形状、屏幕截图、图片反色、改变图片色彩度全解

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 using System; using System.Collections.Generic; using System.ComponentModel ...

最新文章

  1. XP系统,无法创建新的网络连接
  2. 在ashx中使用Session
  3. 计算机控制技术在线,西交19春《计算机控制技术》在线作业【标准答案】
  4. 火币网的macd怎么算的_黄金投资中MACD的计算方式
  5. JDK6笔记(3)----正则表达式
  6. Android4.0 以后不允许在主线程进行网络连接
  7. em模型补缺失值_基于EM算法数据单变量缺失处理方法研究
  8. 【论文阅读】Rich feature hierarchies for accurate object detection and semantic segmentation
  9. PHP按上下级层次关系输出内容
  10. Unity 获取直线与平面的交点
  11. lmdb数据库的读取与转换(一) —— 基本操作
  12. svn 统计代码行数
  13. 将Excel数据导入Matlab+Matlab二次曲线拟合
  14. 英特尔第十代处理器为什么不支持win7_10代cpu能不能装win7?10代cpu装win7全面分析(支持十代...
  15. 重读《触龙说赵太后》
  16. java对接支付宝支付
  17. office365服务器没有响应,修复:由于长时间运行的脚本,Office 365没有响应
  18. Web前端-Ajax-01
  19. 什么时候使用left join?
  20. 【flutter】打渠道包-多渠道脚本打包

热门文章

  1. qchart 怎么点击一下 出一条线_陈奕迅唱歌技巧,学好这几点,你也能唱出更具有穿透力和磁性的声音...
  2. 囚徒困境、智猪博弈、纳什均衡与一致预期(博弈论入门学习笔记二)
  3. Godaddy域名被盗诉讼全过程 法院起诉成功拿回域名
  4. 【NOIP提高A组模拟2018.8.8】没有硝烟的战争
  5. windows错误代码一览表
  6. PAT题目答案与经验总结1(持续更新,大家放心关注)
  7. Java项目:基于jsp+ssm乐轩公司订餐系统(计算机毕业设计)
  8. 用 construct 2 制作简易弹幕游戏
  9. NW.js开发环境搭建
  10. 火车采集器如何采集ajax数据和百度站内搜索数据