QImage是Qt框架中用于处理图像的类,它提供了一系列实用的接口来加载、处理、转换和保存图像。以下是一些QImage的常用接口:
一、图像加载与保存
-
加载图像:
- 可以在构造QImage对象时加载图像文件。
- 使用
load()
或loadFromData()
函数加载图像文件。 - QImage提供了静态
fromData()
函数,从给定的数据构造QImage对象。
-
保存图像:
- 使用
save()
函数保存QImage对象。 - QImage支持的文件格式可以通过QImageReader::supportedImageFormats()和QImageWriter::supportedImageFormats()函数获得。
- 保存图像时,可以指定文件名、格式和质量等参数。
- 使用
二、图像信息获取
-
获取几何信息:
size()
:返回图像的尺寸(宽度和高度)。width()
和height()
:分别返回图像的宽度和高度。rect()
:返回图像的外围矩形。
-
获取颜色信息:
pixel()
:返回指定坐标处的像素颜色值。colorCount()
和colorTable()
:对于8位和单色图像,提供颜色表信息。hasAlphaChannel()
:检测图像是否包含alpha通道。allGray()
和isGrayscale()
:检测图像是否为灰度图。
三、图像处理与转换
-
图像缩放:
- 使用
scaled()
函数对图像进行缩放。可以指定目标尺寸、保持纵横比的模式和变换模式。
- 使用
-
图像转换:
convertToFormat()
:将图像转换为指定的格式。mirrored()
:在水平或垂直方向镜像图像。rgbSwapped()
:将BGR格式的图像转换为RGB格式。
-
像素操作:
setPixel()
:设置指定坐标处的像素颜色。setPixelColor()
:对于每个颜色通道超过8位的图像,设置指定坐标处的像素颜色。scanLine()
:返回指向图像某一行的像素数据的指针,允许直接访问和修改像素数据。
四、图像绘制
QImage也可以作为绘图设备使用,QPainter类提供了一系列函数在QImage上进行绘制操作。例如:
drawImage()
:在QImage上绘制另一张图像。drawPixmap()
:在QImage上绘制QPixmap对象。drawPoint()
、drawLine()
、drawRect()
等:绘制点、线、矩形等基本图形。
五、其他实用接口
- fill():用指定的颜色填充整个图像。
- text()和setText():获取和设置与图像关联的文本信息。
- cacheKey():返回一个唯一标识QImage对象内容的数字。
这些接口提供了丰富的功能,使得QImage成为Qt框架中处理图像的强大工具。无论是进行基本的图像加载、保存和显示,还是进行复杂的图像处理和分析,QImage都能提供有效的支持。