一、显示方法(两种):第一种更佳

1、QImage转QPixmap,然后用QLabel::setPixmap()

1

2

3

4

5

6

7

image=new QImage("D:/Temp/XX.jpg");

pixmap=newQPixmap();

pixmap->convertFromImage(*image);

label=newQLabel(this);

label->setGeometry(100,0,1000,700);

label->setPixmap(*pixmap);

2、在paintEvent()中直接画

1

2

3

4

5

void MyWindow::paintEvent(QPaintEvent*)

{

QPainter paint(this);

paint.drawImage(0,0,*image);

}

二. 图像缩放

图像缩放采用scaled函数。函数原型

QImage QImage::scaled ( const QSize & size,Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationModetransformMode = Qt::FastTransformation ) const

使用方法如下,还是利用上面的img:

QImage* imgScaled = new QImage;
*imgScaled=img->scaled(width,height,Qt::KeepAspectRatio);
ui->label->setPixmap(QPixmap::fromImage(*imgScaled));

scaled函数中width和height表示缩放后图像的宽和高,即将原图像缩放到(width,height)大小。

三. 图像旋转

图像旋转可以利用QImage类的transformed函数,向transformed函数传入QMatrix对象,QMatrix对象指定了旋转的角度。

代码如下:

QImage* imgRatate = new QImage;
QMatrix matrix;
matrix.rotate(270);
*imgRotate = img->transformed(matrix);
ui->label->setPixmap(QPixmap::fromImage(*imgRotate));

注意:rotate函数中参数是旋转的角度,旋转是按顺时针方向旋转的,上面顺时针旋转270度,即逆时针旋转90度。

四. 图像连续缩放
有了图像缩放的基础,就可以实现图像的连续缩放,可以放置一个横向滑竿(中文解释不标准,就是Horizontal Slider部件 ),滑动滑轮的位置以实现图像连续缩放。

Horizontal Slider部件指向的值为整型value,即缩放后的图像为

img->scaled(orignalWidth*value/100,
                         orignalHeight*value/100,
                         Qt::KeepAspectRatio);

orignalWidth和orignalHeight为原始图像的宽和高。

注意:在对原始图像进行缩放多少倍数时,在相应的槽函数内只需要调用Horizontal Slider部件对象的setValue函数即可,因为Horizontal Slider部件滑竿指向的值一旦变化就会触发对应的槽函数来对图像进行缩放。

QImage 类的基本操作相关推荐

  1. QT的QImage类的使用

    详细说明 QImage类提供了独立于硬件的图像表示形式,该图像表示形式可以直接访问像素数据,并且可以用作绘制设备. Qt提供了四个用于处理图像数据的类:QImage,QPixmap,QBitmap和Q ...

  2. android打开位置服务,Android - 位置定位(Location)服务(Service)类的基本操作

    位置定位(Location)服务(Service)类的基本操作 本文地址: http://blog.csdn.net/caroline_wendy 定位服务(Location Service),能够确 ...

  3. Qt QImage类详解(QImage类型转换、QImage类函数及QImage像素操作)

    打开Qt帮助文档,会看到有关于QImage的描述如下:The QImage class provides a hardware-independent image representation tha ...

  4. 【QImage类常用函数】

    QImage类常用函数 1.构造函数(加载图片) 2.load()函数 3.width()函数 4.height()函数 5.size() 函数 6.sizeInBytes()函数 7.bytesPe ...

  5. Qt的QImage类

    QImage类提供了一个硬件无关的图像表示方法,该图像可以逐像素被访问和用于画图设备. Qt提供了QImage.QPixmap.QBitmap和QPicture四种图像操作类.QImage类主要用于I ...

  6. Qt之QImage类

    文章目录 QT--QImage类 QImage获取图像的数据信息 QImage图像格式转换 由RGB格式转换为BGR格式 将彩色图转换为灰度图 图像保存 QImage图像显示在QLabel上 QPix ...

  7. ado.net连接mysql 类_C# ADO.NET 连接数据库常用到的类及基本操作格式

    一.ADO.NET是什么,有什么用 数据库访问技术 ado.net可让开发人员以一致的方式存取资料来源, 资料共用的消费者应用程序可使用ado.net 来连接至这些资料来源,并且撷取.处理及更新其中所 ...

  8. java OpenCv Mat 类的基本操作(3)

    对初学者来说,我们总是希望通过Opencv实现一些功能,当我们去研究一个陌生的东西,我们总是想着利用他去实现某一个功能 比如Opencv,我们很容易利用他去进行人脸识别,人脸识别也有很多的方式比如利用 ...

  9. [Java基础] Properties类的基本操作和介绍

    引言 Java中的.properties文件是一种配置文件,主要用于表达配置信息:通俗来说,存放的数据就像是Map中的key和value的对应关系一样:这样就可以通过键值对来对属性进行匹配,并且属性列 ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:排序
  2. 1.2 一维数组的定义、赋值和初始化
  3. 04Prism WPF 入门实战 - Module
  4. Netty 源码走读
  5. http --- http与https相关概念小结
  6. python文件图标变成小电脑_手把手教你给Python程序写图形界面,并且打包成exe文件-exe文件...
  7. vaadin_Vaadin附加组件和Maven
  8. PHP和MySQL的交互实验注意事项,PHP 和 MySQL 开发中要注意的8个技巧
  9. UML应用:业务内涵的分析抽象amp;表达
  10. BZOJ 1597 [Usaco2008 Mar] 土地购买
  11. 品高云产品经理邱洋:做国内云计算第一品牌
  12. Go爬虫colly官方示例三【cryptocoinmarketcap】- 爬取加密数字货币最新市值
  13. C语言startup()函数,干货 | 深度剖析C语言的main函数
  14. 微信小程序 上传本地图片
  15. java SNS网络系统,Java源码:SNS社交管理系统JEESNS v1.3
  16. hive修改分区信息
  17. 连续型随机变量及其概率密度(习题部分)
  18. 自媒体平台:大鱼计划,20亿大鱼平台奖励金如何获取?
  19. 在开始——运行里头输入命令能打开的文件是放在WINDOWS哪个目录下
  20. 理解ViT(结合代码)

热门文章

  1. QQ同时在线人数地图发布 沿海“大亮”
  2. Dubbo之旅--扩展注册中心
  3. python使用协程_Python 协程使用心得
  4. IDEA git 拉取项目时报 No tracked branch configured for branch master or the branch doesn‘t exist的提示
  5. 【数字图像处理】浮雕效果和倒影效果
  6. Excel 如何用条件查出行,并导出行到新表
  7. SQL-查找最晚入职的员工的所有信息
  8. Java反射08 : 成员方法Method学习示例
  9. #define #undef 使用
  10. C语言 初学者使用 if语句 常见的错误