QImage方法功能(QT5.12)

本文详细介绍了Qt中QImage类的功能与使用方法,包括不同图像格式的特点、图像的创建与加载方式、图像属性获取及图像处理操作等内容。

//for starf study

#include "mainwindow.h"
#include "ui_mainwindow.h"

#include<QDebug>
#include <QImage>
#include <QSize>
#include <QRect>
#include <QString>
#include <QVector>
#include <QImageReader>

//QImage类提供独立于硬件的图像表示,允许直接访问像素数据,并可用作绘制设备。
//Qt提供了四个处理图像数据的类:QImage、QPixmap、QBitmap和QPicture。
//QImage是为I/O、直接像素访问和操作而设计和优化的
//QPixmap是为在屏幕上显示图像而设计和优化的。
//QBitmap只是一个继承QPixmap的方便类,确保深度为1。
//QPicture类是一个绘画设备,用于记录和重放QPaint命令。

//像素深度是指存储每个像素所需要的比特数。假定存储每个像素需要8bit,则图像的像素深度为8。
//图像深度是指像素深度中实际用于存储图像的灰度或色彩所需要的比特位数,
//假定图像的像素深度为16bit,但用于表示图像的灰度或色彩的位数只有15位,则图像的图像深度为15。
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
   
   
    ui->setupUi(this);
    QImage img = QImage(QSize(300, 200), QImage::Format_ARGB32); //图像使用32位ARGB格式(0xAARRGGBB)存储。
        //第一个参数指定图像尺寸  也可以用 两个整数(width,height)替换
        //第二个参数设置图像模式 QImage::Format ,可选项有:
        //QImage::Format_Invalid(0)          图像无效
        //QImage::Format_Mono               图像以每像素1位的方式存储。字节首先被最高有效位(MSB)压缩。
        //QImage::Format_MonoLSB         图像以每像素1位的方式存储。字节首先被低有效位(LSB)压缩。
        //QImage::Format_Indexed8         使用8位索引将图像存储到颜色映射中。
        //QImage::Format_RGB32             图像使用32位RGB格式(0xffRRGGBB)存储。
        //QImage::Format_ARGB32             图像使用32位ARGB格式(0xAARRGGBB)存储。
        //QImage::Format_ARGB32_Premultiplied   图像使用预乘32位ARGB格式(0xAARRGBB)存储
                                                                        //即红色、绿色和蓝色通道乘以alpha分量除以255。
                                                                        //某些操作(例如使用alpha混合的图像合成)使用预乘ARGB32比使用普通ARGB32更快。
        //QImage::Format_RGB16                  图像使用16位RGB格式(5-6-5)存储。
        //QImage::Format_ARGB8565_Premultiplied     图像使用预乘24位ARGB格式(8-5-6-5)存储。
        //QImage::Format_RGB666                 图像使用24位RGB格式(6-6-6)存储。未使用的最高有效位始终为零。
        //QImage::Format_ARGB6666_Premultiplied     图像使用预乘24位ARGB格式(6-6-6-6)存储。
        //QImage::Format_RGB555             图像使用16位RGB格式(5-5-5)存储。未使用的最高有效位始终为零。
        //QImage::Format_ARGB8555_Premultiplied     图像使用预乘24位ARGB格式(8-5-5-5)存储。
        //QImage::Format_RGB888     图像使用24位RGB格式(8-8-8)存储。
        //QImage::Format_RGB444     图像使用16位RGB格式(4-4-4)存储。未使用的位始终为零。
        //QImage::Format_ARGB4444_Premultiplied     图像使用预乘16位ARGB格式(4-4-4-4)存储。
        //QImage::Format_RGBX8888       图像使用32位字节顺序的RGB(x)格式(8-8-8-8)存储。这与格式_RGBA8888相同,只是alpha必须始终为255。
        //QImage::Format_RGBA8888       图像使用32位字节顺序的RGBA格式(8-8-8-8)存储。
                                                               //与ARGB32不同,这是一种字节顺序格式,这意味着32位编码在大端和小端体系结构之间有所不同,分别为(0xRRGGBBAA)和(0xAABBGGRR)。
        //QImage::Format_RGBA8888_Premultiplied         图像使用预乘32位字节顺序RGBA格式(8-8-8-8)存储。
        //QImage::Format_BGR30      图像使用32位BGR格式(x-10-10-10)存储
        //QImage::Format_A2BGR30_Premultiplied      图像使用32位预乘ABGR格式(2-10-10-10)存储。
        //QImage::Format_RGB30      图像使用32位RGB格式(x-10-10-10)存储。
        //QImage::Format_A2RGB30_Premultiplied  图像使用32位预乘ARGB格式(2-10-10-10)存储。
        //QImage::Format_Alpha8     图像使用8位纯alpha格式存储。
        //QImage::Format_Grayscale8     图像以8位灰度格式存储。
        //QImage::Format_RGBX64 图像使用64位半字有序RGB(x)格式(16-16-16-16)存储。这与格式_RGBX64相同,只是alpha必须始终为65535。
        //QImage::Format_RGBA64 图像使用64位半字有序RGBA格式(16-16-16-16)存储。
        //QImage::Format_RGBA64_Premultiplied 图像使用预乘64位半字有序RGBA格式(16-16-16-16)存储。
    const QString filename = QString("D:/test.jpge")
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值