QImage

默认支持的图像格式:
BMP ,GIF , JPG , JPEG, PNG, PBM, PGM, PPM, XBM, XPM
 

QImage(const QSize &size, Format format)使用给定的大小和格式构造图像
QImage(int width, int height, Format format)使用给定的大小和格式构造图像
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)
用给定的宽度、高度和格式构造图像,使用一个已有的内存缓冲区、数据。宽度和高度必须指定像素,数据必须是32位对齐,每个扫描线的图像数据中也必须是32位对齐。
QImage(const char * const[] xpm)从给定的xpm图像构造图像
QImage(const QString &fileName, const char *format = Q_NULLPTR)从给定的文件名加载图像
bool allGray() const如果图像中的所有颜色都是灰色(即它们的红色、绿色和蓝色分量相等),则返回 true; 否则为假。
请注意,对于没有颜色表的图像,此功能很慢。
int bitPlaneCount() const返回图像中位平面的数量。
位平面数是每个像素的颜色和透明度信息的位数。 这与(即小于)图像格式包含未使用位时的深度不同。
uchar *bits()返回指向第一个像素数据的指针。 这等效于 scanLine(0)。
请注意,QImage 使用隐式数据共享。 该函数执行共享像素数据的深度复制,从而确保此 QImage 是唯一使用当前返回值的。
const uchar *bits() const获取图像首地址,不进行深度拷贝
int byteCount() const返回图像数据占用的字节数。
请注意,永远不应在大于 2 GB 的图像上调用此方法。 而是使用 sizeInBytes()
int bytesPerLine() const返回每个图像扫描线的字节数。
如果 height() 非零,则这等效于 sizeInBytes() / height()。
qint64 cacheKey() const返回标识此 QImage 对象内容的Key。 如果不同的 QImage 对象引用相同的内容,则它们具有相同的Key
更改图像时,Key将更改。
QRgb color(int i) const返回颜色表中索引 i 处的颜色。 第一种颜色位于索引 0 处。
图像颜色表中的颜色指定为 ARGB 四元组 (QRgb)。 使用 qAlpha()、qRed()、qGreen() 和 qBlue() 函数来获取颜色值分量。
int colorCount() const返回图像颜色表的大小。
请注意,对于 32-bpp 图像,colorCount() 返回 0,因为这些图像不使用颜色表,而是将像素值编码为 ARGB 四元组。
QVector<QRgb> colorTable() const返回图像在颜色表中包含的颜色的列表
const uchar *constBits() const返回像素首地址,该函数不进行深度拷贝
const uchar *constScanLine(int i) const返回从I开始的指向扫描线的指针
QImage convertToFormat(Format format, Qt::ImageConversionFlags flags = Qt::AutoColor) const
QImage convertToFormat(Format format, const QVector<QRgb> &colorTable, Qt::ImageConversionFlags flags = Qt::AutoColor) const

使用指定的颜色表返回转换为给定格式的图像副本。

从RGB格式到索引格式的转换是一个缓慢的操作

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从此图像中的 alpha 缓冲区构建并返回一个 1-bpp 掩码。 如果图像的格式为 QImage::Format_RGB32,则返回空图像。
QImage createHeuristicMask(bool clipTight = true) const

创建并返回此像素图的启发式蒙版。该功能的工作原理是从任一角中选择一种颜色,然后从所有边缘开始切去该颜色的像素。 如果clipTight为true(默认值),则遮罩足够大以覆盖像素; 否则,掩码大于数据像素。

QImage createMaskFromColor(QRgb color, Qt::MaskMode mode = Qt::MaskInColor) const根据给定的颜色值创建并返回此图像的蒙版。 如果模式为 MaskInColor(默认值),则所有匹配颜色的像素都将是遮罩中的不透明像素。 如果 mode 为 MaskOutColor,则匹配给定颜色的所有像素都将是透明的。
int depth() const返回图像的深度。
图像深度是用于存储单个像素的位数,也称为每像素位数 (bpp)。
支持的深度为 1、8、16、24 和 32。
qreal devicePixelRatio() const返回图像的设备像素比。 这是设备像素和设备独立像素之间的比率。
根据图像大小计算布局几何时使用此函数: QSize layoutSize = image.size() / image.devicePixelRatio()
默认值为 1.0。
int dotsPerMeterX() const返回在物理仪表中水平放置的像素数。 该数字与 dotsPerMeterY() 一起定义了图像的预期比例和纵横比。
int dotsPerMeterY() const返回物理仪表中垂直匹配的像素数。此数字与dotsPerMeterX()一起定义图像的预期比例和纵横比。
void fill(uint pixelValue)
void fill(const QColor &color)
void fill(Qt::GlobalColor color)
以给定的颜色填充整个图像
Format format() const返回图像格式
bool hasAlphaChannel() const

如果图像的格式符合alpha通道,则返回true,否则返回false。

int height() const图像高度
void invertPixels(InvertMode mode = InvertRgb)

反转图像中的所有像素值。

给定的反转模式只有在图像深度为32时才有意义。默认模式为反转RGB,保持alpha通道不变。如果模式为InvertRgba,则alpha位也会反转。

反转8位图像意味着将使用颜色索引i的所有像素替换为使用颜色索引255减去i的像素。1位图像也是如此。请注意,颜色表没有更改。

bool isGrayscale() const

对于32位图像,此函数等效于allGray()

对于颜色索引图像,如果颜色表的所有索引的color(i)是QRgb(i,i,i),则返回true,否则返回false

bool isNull() const图像是否为空
bool load(const QString &fileName, const char *format = Q_NULLPTR)
bool load(QIODevice *device, const char *format)
加载图像
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返回图像相对于其他图像定位时要偏移的像素数
QRgb pixel(const QPoint &position) const
QRgb pixel(int x, int y) const
返回指定坐标像素的RGB
QColor pixelColor(const QPoint &position) const
QColor pixelColor(int x, int y) const
返回指定坐标像素的Color
QPixelFormat pixelFormat() const返回像素格式
int pixelIndex(const QPoint &position) const
int pixelIndex(int x, int y) const
返回给定位置的像素索引
QRect rect() const返回图像矩形
QImage rgbSwapped() const红色和蓝色交换,返回交换后的图像
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
使用给定的文件名格式和质量,把图像保存到给定文件名中

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

返回缩放后的图像

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

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

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

QImage scaledToHeight(int height, Qt::TransformationMode mode = Qt::FastTransformation) const
QImage scaledToWidth(int width, Qt::TransformationMode mode = Qt::FastTransformation) const
返回图像缩放副本,该函数会自动按比例缩放宽度
uchar *scanLine(int i)
const uchar *scanLine(int i) const
 
返回扫描线,第一条扫描线在索引0
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)

图像文本设置为给定的文本,并将其与给定的键相关联。

如果您只想存储一个文本块(即“注释”或一个描述),您可以传递一个空键,或者使用一个通用键,如“描述”。

调用save()或QImageWriter::write()时,图像文本将嵌入到图像数据中。

QSize size() const返回图像大小
void swap(QImage &other)图像互换,该函数比较快
QString text(const QString &key = QString()) const返回与给定键关联的图像文本。如果指定的键是空字符串,则返回整个图像文本,每个键文本对用换行符分隔。
QStringList textKeys() const返回此图像的文本键。
您可以将这些键与 text() 一起使用来列出某个键的图像文本。
QImage transformed(const QMatrix &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
QImage transformed(const QTransform &matrix, Qt::TransformationMode mode = Qt::FastTransformation) const
返回使用给定的转换矩阵和转换模式转换的图像的副本。
bool valid(const QPoint &pos) const
bool valid(int x, int y) const
如果该坐标有效,返回true
int width() const图像宽度

 

Static Public Members

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

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

从给定二进制数据的第一个 size 字节构造一个 QImage 。 加载器尝试使用指定的格式读取图像。 如果没有指定格式(这是默认设置),加载器会探测头文件的数据来猜测文件格式。
如果指定了格式,它必须是 QImageReader::supportedImageFormats() 返回的值之一。
如果图片加载失败,返回的图片将为空图片。
QImage::Format toImageFormat(QPixelFormat format)转换格式到QImage::Format
QPixelFormat toPixelFormat(QImage::Format format)转换格式到QPixelFormat 
QMatrix trueMatrix(const QMatrix &matrix, int width, int height)
 
返回用于转换具有给定宽度、高度和矩阵的图像的实际矩阵。
当使用transformed() 函数变换图像时,变换矩阵在内部进行调整以补偿不需要的平移,即transformed() 返回包含原始图像所有变换点的最小图像。 此函数返回修改后的矩阵,该矩阵将点从原始图像正确映射到新图像。
QTransform trueMatrix(const QTransform &matrix, int width, int height)返回用于转换具有给定宽度、高度和矩阵的图像的实际矩阵。
当使用transformed() 函数变换图像时,变换矩阵在内部进行调整以补偿不需要的平移,即transformed() 返回包含原始图像所有变换点的最小图像。 此函数返回修改后的矩阵,该矩阵将点从原始图像正确映射到新图像。
与其他重载不同,此函数创建可用于对图像执行透视变换的变换矩阵。
QImage smoothScaled(int w, int h) const返回平滑缩放的图像副本。 返回的图像大小为宽 w  高 h 像素


 

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位灰度格式存储
QImage::InvertMode
QImage::InvertRgb仅反转 RGB 值并保持 Alpha 通道不变。
QImage::InvertRgba反转所有通道,包括 Alpha 通道。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值