可以访问图像每个像素的颜色信息,从而实现对图像数据进行像素处理
颜色数据格式(了解):
RGB32:图像使用32位RGB格式存储(0xffRRGGBB)ff是浪费的,因为计算机处理一次数据一般读出字节的整数倍
RGB888:图像使用24位RGB格式存储(8-8-8)
ARGB32:图像使用32位RGB格式存储(0xAARRGGBB)A:透明通道
RGBA32:图像使用32位RGB格式存储(0xRRGGBBAA)
RGB565:图像使用16位RGB格式存储,red5位,green6位,blue5位,更节约空间
图片文件格式:
BMP:无损压缩图片文件格式,无压缩
PNG:无损压缩图片格式,有一定的压缩率,文件解压后就是原图!
JPG:有损压缩格式,可以保持较高图像质量的情况下使文件小很多
SVG:基于XML的矢量图文件格式,是描述图像绘制方法的图片文件格式。不能用QImage和QPixmap类处理,需要使用QSvgRenderer和QSvgWidget类
QImage
常用构造函数
QImage(const QString &fileName, const char *format = nullptr);
filenName指定图片路径名,format
参数的值是一个字符串,用于指定图像的格式。Qt 支持多种图像格式,包括但不限于 BMP、GIF、JPG、PNG、TIFF 等。
QImage(const QSize &size, Format format);enum Format {Format_Invalid,Format_Mono,Format_MonoLSB,Format_Indexed8,Format_RGB32,Format_ARGB32,Format_ARGB32_Premultiplied,Format_RGB16,
......
format是像素的颜色数据格式
QImage();//无参构造
使用无参构造,一般都要结合load()加载图片数据
QImage img;img.load(":/img/1.png");
获取图片信息
QImage img;img.load(":/img/1.png");qDebug()<<img.format();//QImage::Format_ARGB32,输出图片颜色格式qDebug()<<img.depth();//32,图片位深qDebug()<<img.width();//图片宽度qDebug()<<img.height();//图片高度qDebug()<<img.size();//QSize(695, 376)
访问颜色数据
qDebug()<<img.pixel(0,0);//4291871899,返回无符号32位整数qDebug()<<img.pixelColor(0,0);//QColor(ARGB 1, 0.815686, 0.768627, 0.607843)