Qt开发——图片缩放简述
代码如下:
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开发——图片缩放简述相关推荐
- Qt开发 — 图片缩放简述
代码如下 QImage Image;Image.load("d:/test.jpg");QPixmap pixmap = QPixmap::fromImage(Image);int ...
- QT实现图片缩放的同时标记指定坐标
本文以我的另一篇文章<QT实现图片缩放>为基础,连接为:https://blog.csdn.net/weixin_43935474/article/details/89327314 现在有 ...
- FireMonkey开发: 图片缩放
图片缩放 FM的TBitmap增加了CreateThumbnail http://docwiki.embarcadero.com/Libraries/XE2/en/FMX.Types.TBitmap. ...
- Android安卓开发中图片缩放讲解
安卓开发中应用到图片的处理时候,我们通常会怎么缩放操作呢,来看下面的两种做法: 方法1:按固定比例进行缩放 在开发一些软件,如新闻客户端,很多时候要显示图片的缩略图,由于手机屏幕限制,一般情况下,我们 ...
- QT学习笔记(三)——vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放
vs2019+Qt实现打开影像并以鼠标为中心用滚轮控制图片缩放 之前写了一个博客讲怎么显示一张影像,那个是基于Qpainter的 今天使用QLabel来显示影像,并且用鼠标滚轮控制缩放. 关于图像的打 ...
- PyQt5实现图片缩放、旋转
下面讲述PyQt5实现图片缩放.旋转的两种方式 第一种基于鼠标滚轮缩放,左右键移动 pyqt5实现过程如下 # -*- coding: utf-8 -*-from PyQt5 import QtCor ...
- [转]使用QT开发GoogleMap瓦片显示和下载工具
第一节 之前做项目的时候经常遇到需要大量地图背景数据,然后没有数据被逼着去Google上下载瓦片数据在拼接成整张影像的工作,其实遥感影像晚上有很多可以下载到的,但是大部分是作为研究用的,作为GIS的背 ...
- [Android] 触屏setOnTouchListener实现图片缩放、移动、绘制和添加水印
前一篇文章讲述了Android实现图片Matrix矩阵类缩放.旋转.对比度.亮度.饱和度处理,但是真正的图片软件都是使用触屏实现图片缩放.移动.添加水印等功能,所以该篇文章主要通过setOnT ...
- Android图片缩放方法
方法1:按固定比例进行缩放 在开发图片浏览器等 软件是,很多时候要显示图片的缩略图,而一般情况下,我们要将图片按照固定大小取缩略图,一般取缩略图的方法是使用BitmapFactory的 decodeF ...
- c#图像处理、图片拼接、图片裁剪、图片缩放、图上添加形状、屏幕截图、图片反色、改变图片色彩度全解
全栈工程师开发手册 (作者:栾鹏) c#教程全解 using System; using System.Collections.Generic; using System.ComponentModel ...
最新文章
- XP系统,无法创建新的网络连接
- 在ashx中使用Session
- 计算机控制技术在线,西交19春《计算机控制技术》在线作业【标准答案】
- 火币网的macd怎么算的_黄金投资中MACD的计算方式
- JDK6笔记(3)----正则表达式
- Android4.0 以后不允许在主线程进行网络连接
- em模型补缺失值_基于EM算法数据单变量缺失处理方法研究
- 【论文阅读】Rich feature hierarchies for accurate object detection and semantic segmentation
- PHP按上下级层次关系输出内容
- Unity 获取直线与平面的交点
- lmdb数据库的读取与转换(一) —— 基本操作
- svn 统计代码行数
- 将Excel数据导入Matlab+Matlab二次曲线拟合
- 英特尔第十代处理器为什么不支持win7_10代cpu能不能装win7?10代cpu装win7全面分析(支持十代...
- 重读《触龙说赵太后》
- java对接支付宝支付
- office365服务器没有响应,修复:由于长时间运行的脚本,Office 365没有响应
- Web前端-Ajax-01
- 什么时候使用left join?
- 【flutter】打渠道包-多渠道脚本打包
热门文章
- qchart 怎么点击一下 出一条线_陈奕迅唱歌技巧,学好这几点,你也能唱出更具有穿透力和磁性的声音...
- 囚徒困境、智猪博弈、纳什均衡与一致预期(博弈论入门学习笔记二)
- Godaddy域名被盗诉讼全过程 法院起诉成功拿回域名
- 【NOIP提高A组模拟2018.8.8】没有硝烟的战争
- windows错误代码一览表
- PAT题目答案与经验总结1(持续更新,大家放心关注)
- Java项目:基于jsp+ssm乐轩公司订餐系统(计算机毕业设计)
- 用 construct 2 制作简易弹幕游戏
- NW.js开发环境搭建
- 火车采集器如何采集ajax数据和百度站内搜索数据