QImage

支持的图像格式:

BMP ,GIF , JPG , JPEG, PNG, PBM, PGM, PPM, XBM, XPM

//使用给定的大小和格式构造图像

QImage(const QSize &size, Format format)

//使用给定的大小和格式构造图像

QImage(int width, int height, Format format)

//用给定的宽度、高度和格式构造图像,使用一个已有的内存缓冲区、数据。宽度和高度必须指定像素,数据必须是32位对齐,每个扫描线的图像数据中也必须是32位对齐。

QImage(uchar *data, int width, int height, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void *cleanupInfo = Q_NULLPTR)

QImage(const uchar *data, int width, int height, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void *cleanupInfo = Q_NULLPTR)

QImage(uchar *data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void *cleanupInfo = Q_NULLPTR)

QImage(const uchar *data, int width, int height, int bytesPerLine, Format format, QImageCleanupFunction cleanupFunction = Q_NULLPTR, void *cleanupInfo = Q_NULLPTR)

//从给定的xpm图像构造图像

QImage(const char * const[] xpm)

//从给定的文件名加载图像

QImage(const QString &fileName, const char *format = Q_NULLPTR)

//如果这是灰度图像返回真,否则为假

bool allGray() const

//返回图像位数

int bitPlaneCount() const

//获取图像首地址

uchar *bits()

//获取图像首地址,不进行深度拷贝

const uchar *bits() const

//图像总字节数

int byteCount() const

//图像每行字节数

int bytesPerLine() const

//返回标识该QImage对象的内容数量

qint64 cacheKey() const

//返回颜色表中的颜色

QRgb color(int i) const

//返回颜色表大小

int colorCount() const

//返回图像在颜色表中包含的颜色的列表

QVector<QRgb> colorTable() const

//返回像素首地址,该函数不进行深度拷贝

const uchar *constBits() const

//返回从I开始的指向扫描线的指针

const uchar *constScanLine(int i) const

//返回指定格式的图像

QImage convertToFormat(Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const

QImage convertToFormat(Format format, const QVector<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const

//返回图像的子区域作为一个新图像

QImage copy(const QRect &rectangle = QRect()) const

QImage copy(int x, int y, int width, int height) const

//按指定格式返回一个遮罩图像

QImage createAlphaMask(Qt::ImageConversionFlags flags = Qt::AutoColor) const

//创建遮罩

QImage createHeuristicMask(bool clipTight = true) const

//根据给定的颜色创建遮罩

QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const

//返回图片深度

int depth() const

//返回图像的设备像素比例

qreal devicePixelRatio() const

//返回X的像素数

int dotsPerMeterX() const

//返回Y的像素数

int dotsPerMeterY() const

//以给定的值填充整个图像

void fill(uint pixelValue)

void fill(const QColor &color)

void fill(Qt::GlobalColor color)

//返回图像格式

Format format() const

//是否有Alpha通道

bool hasAlphaChannel() const

//图像高度

int height() const

//反转图像的像素,只有当图像的深度为32位,给定的反转模式才有意义

void invertPixels(InvertMode mode = InvertRgb)

//如果是灰度图像

bool isGrayscale() const

//图像是否为空

bool isNull() const

//加载图像

bool load(const QString &fileName, const char *format = Q_NULLPTR)

bool load(QIODevice *device, const char *format)

//从第Len个字节的二进制数据加载一个图像

bool loadFromData(const uchar *data, int len, const char *format = Q_NULLPTR)

bool loadFromData(const QByteArray &data, const char *format = Q_NULLPTR)

//返回图像镜像

QImage mirrored(bool horizontal = false, bool vertical = true) const

//返回图像偏移量

QPoint offset() const

//返回指定坐标像素的RGB

QRgb pixel(const QPoint &position) const

QRgb pixel(int x, int y) const

//返回指定坐标像素的Color

QColor pixelColor(const QPoint &position) const

QColor pixelColor(int x, int y) const

//返回像素格式

QPixelFormat pixelFormat() const

//返回给定位置的像素索引

int pixelIndex(const QPoint &position) const

int pixelIndex(int x, int y) const

//返回图像矩形

QRect rect() const

//红色和蓝色交换,返回交换后的图像

QImage rgbSwapped() const

//使用给定的文件名格式和质量因子,把图像保存到给定文件名中,返回TRUE

bool save(const QString &fileName, const char *format = Q_NULLPTR, int quality = -1) const

bool save(QIODevice *device, const char *format = Q_NULLPTR, int quality = -1) const

//返回缩放后的图像

//Qt::IgnoreAspectRatio 忽略纵横比,拉伸到指定大小

//Qt::KeepAspectRatio 保持纵横比,宽度与矩形对齐

//Qt::KeepAspectRatioByExpanding 保持纵横比,高度与矩形对齐

QImage scaled(const QSize &size, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio, Qt::TransformationMode transformMode = Qt::FastTransformation) const QImage scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode = Qt::IgnoreAspectRatio,
Qt::TransformationMode transformMode =Qt::FastTransformation)const

//返回图像缩放副本,该函数会自动按比例缩放宽度

QImage scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const

QImage scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const

//返回扫描线,第一条扫描线在索引0

uchar *scanLine(int i)

const uchar *scanLine(int i) const

//在给定的索引设置颜色

void setColor(int index, QRgb colorValue)

//扩展颜色表的颜色数目

void setColorCount(int colorCount)

//设置颜色表

void setColorTable(const QVector<QRgb> &colors)

//设置设备像素比

void setDevicePixelRatio(qreal scaleFactor)

//定义的纵横比,通过设置在一个物理表中的像素的数目,以适应水平。

void setDotsPerMeterX(int x)

void setDotsPerMeterY(int y)

//设置图像的像素的数目

void setOffset(const QPoint &offset)

//设置像素颜色

void setPixel(const QPoint &position, uint index_or_rgb)

void setPixel(int x, int y, uint index_or_rgb)

void setPixelColor(const QPoint &position, const QColor &color)

void setPixelColor(int x, int y, const QColor &color)

//嵌入字符串

void setText(const QString &key, const QString &text)

//返回图像大小

QSize size() const

//图像互换,该函数比较快

void swap(QImage &other)

//返回与图像关联的文本

QString text(const QString &key = QString()) const

//返回该图像的文本键。

QStringList textKeys() const

//返回使用给定的转换矩阵和转换模式转换的图像的副本。

QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const

QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const

//如果该坐标有效,返回true

bool valid(const QPoint &pos) const

bool valid(int x, int y) const

//图像宽度

int width() const

Static Public Members

//从size字节开始二进制文本以指定格式构建QImage

QImage fromData(const uchar *data, int size, const char *format = Q_NULLPTR)

QImage fromData(const QByteArray &data, const char *format = Q_NULLPTR)

//转换格式到QImage::Format

QImage::Format toImageFormat(QPixelFormat format)

//转换格式到QPixelFormat

QPixelFormat toPixelFormat(QImage::Format format)

//返回给定宽度。高度和矩阵的图像的实际矩阵

QMatrix trueMatrix(const QMatrix &matrix, int width, int height)

/返回给定宽度。高度和矩阵的图像的实际矩阵,可以用来透视变换的图像

QTransform trueMatrix(const QTransform &matrix, int width, int height)

Protected Functions

//返回图像的平滑缩放副本

QImage smoothScaled(int w, int h) const

enum QImage::Format

QImage::Format_Invalid 图像无效

QImage::Format_Mono 存储使用1位每像素的图像,字节填充最重要位第一

QImage::Format_MonoLSB 存储使用1位每像素的图像,字节填充不显著位第一

QImage::Format_Indexed8 图像存储使用8位指标转化成Colormap

QImage::Format_RGB32 存储使用32位RGB格式的图像(0xffrrggbb)

QImage::Format_ARGB32 存储使用32为ARGB格式的图像(0xaarrggbb)

QImage::Format_ARGB32_Premultiplied 图像存储使用一个自左乘32位ARGB格式

QImage::Format_RGB16 图像存储使用5-6-5 16位RGB格式

QImage::Format_ARGB8565_Premultiplied 图像存储使用一个自左乘24位ARGB格式8-5-6-5

QImage::Format_RGB666 图像存储使用6-6-6 24位RGB格式,未使用的最重要的位总是为零

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 图像存储使用8-8-8 24位RGB格式

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

QImage::Format_RGBA8888 存储使用32位字节命令RGBA格式(8-8-8-8)的的图像

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 图像存储使用2-10-10-10 32位自左乘ARGB格式

QImage::Format_Alpha8 该图像是使用一个8位的阿尔法格式存储

QImage::Format_Grayscale8 图像是使用一个8位灰度格式存储

enum QImage::InvertMode

QImage::InvertRgb  反转RGB通道,a通道变

QImage::InvertRgba 反转所有通道

时间: 2024-10-09 02:06:37

QImage的相关文章

QPixmap,QImage图片大小缩放linux版

注意事项: 1.装载图片的地址有时候会读取不到.可以多摸索一下当前系统对应的格式. 2.scaled缩放方式选择 3.注意保存路径.下面程序保存路径是当前执行文件目录中. PicOpera::PicOpera(QObject *parent) : QObject(parent){    QPixmap pixmap;    pixmap.load("/home/arikes/Programer/Qt/ImageOpera/aa.jpg");    QPixmap fitpixmap=p

如何正确地在手机上显示图片——QImage与QPixmap完全解析

引言 用Qt程序在手机上显示一幅图片对编程人员来说是再基础不过的一件事情了.那么先让大家看两段代码: //dangerous should not be used, cannot display earth.png, //but if we change earth.png to a smaller image e.g. apple.png, apple.png can be displayed QPixmap pixmap; pixmap.load( ":/pics/earth.png&quo

Mat转换为QImage

请留意: opencv为3.0.0版本,Qt为4.8.4版本 1 #include"image1.h" 2 #include<QApplication> 3 #include<QImage> 4 #include<QDebug> 5 #include<opencv2/opencv.hpp> 6 7 int main(int argv , char* argc[] ){ 8 9 QApplication a(argv,argc); 10 Q

Qt开发小工具之gif转换器(使用QMovie截取每一帧为QImage,然后用QFile另存为图片文件)

最近,QQ上好多各种gif表情.每一个都很经典呀..于是我就想把它转换成一张张静态图片...没学过ps.于是写了几行代码.完工.核心代码如下 主要是借助QMovie类.文件读取模式选择QMovie::CacheAll 这样就可以缓存所有图片.然后结束jumpToFrame来切换图片.循环搞定.. [cpp] view plaincopy void MainWindow::getStaticPhoto() { if (m_GifPath == "" || m_SaveDirPath ==

IplImage 与 QImage 相互转换

在使用Qt和OpenCV编程时,对于它们各自的图像类QImage和IplImage难以避免的需要互相之间的转换,下面我们就来看它们的相互转换. 1. QImage 转换为 IplImage IplImage *QImageToIplImage(const QImage * qImage) { int width = qImage->width(); int height = qImage->height(); CvSize Size; Size.height = height; Size.wi

Qt 编程指南10 QImage Mat QPixmap转换

  //示例 pushButtonOpenPicBig按钮clicked单击动作触发 void Qt_Window::on_pushButtonOpenPicBig_clicked() { string filename =GetFileName() ; // 获取图像路径 Mat picMat= imread(filename, 1); // 读取保存为opencv Mat类图像 QPixmap picQPixmap = MatToQT(picMat); //opencv Mat类图像转换QT

QImage的浅拷贝与深拷贝

 首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝就比如值类型,即浅拷贝是共用一块内存的,而深拷贝是复制一份内容.   我们再来看看QImage类的几个构造函数: // 浅拷贝 QImage(uchar * data, int width, int height, Format format) // 浅拷贝 QImage(const uchar * data, int width, int height, Format format) // 浅拷贝 QImage(uchar *

Qt可显示基本的图像类型,利用QImage、QPxmap类可以实现图像的显示

Qt可显示基本的图像类型,利用QImage.QPxmap类可以实现图像的显示,并且利用类中的方法可以实现图像的基本操作(缩放.旋转). 1. Qt可显示的图像类型 参考Qt的帮助文档,可支持的类型,即可以直接读取并显示的格式有BMP.GIF.JPG.JPEG.PNG.TIFF.PBM.PGM.PPM.XBM.XPM. 2. Qt用如何显示图像 通常用QLabel显示图像,QLabel类有setPixmap()函数,可以用来显示图像.也可以直接用QPainter画出图像. 如果图像过大,直接用QL

OpenCV图片类cv::Mat和QImage之间进行转换(好多相关文章)

在使用Qt和OpenCV混合编程时,我们有时需要在两种图片类cv::Mat和QImage之间进行转换,下面的代码参考了网上这个帖子: //##### cv::Mat ---> QImage ##### // Shallow copy QImage mat2qimage_ref(cv::Mat &m, QImage::Format format) { return QImage(m.data, m.cols, m.rows, m.step, format); } // Deep copy QI

QImage Color Convert to Gray 转为灰度图

在Qt中,我们有时需要把QImage类的彩色图片转为灰度图,一开始我想的是用QImage的成员函数convertToFormat(),但是试了好多参数,返现转化的图片都有问题,不是我们想要的灰度图,如果谁用成员函数成功转化成了灰度图,请在评论区将您的方法写下,让博主学习一下.那么还有一种笨办法,就是手动将R,G,B的值平均一下,然后用平均值更新每一个像素值,也能得到灰度图.参见代码如下: // image is the input color image, img is output grey