class QImage#

QImage 类提供了一种与硬件无关的图像表示形式,允许直接访问像素数据,并可用作绘图设备。了解更多信息...

Inheritance diagram of PySide6.QtGui.QImage

概述

方法

静态函数#

备注

本文档可能包含一些从C++自动翻译而来的代码片段。我们始终欢迎片段翻译的贡献。如果您发现翻译中的问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建一个工单来告知我们。

详细说明#

警告

本节包含从C++自动翻译到Python的代码片段,可能存在错误。

Qt提供了四个用于处理图像数据的类:QImageQPixmapQBitmapQPictureQImage是为I/O、直接像素访问和操作而设计和优化的,而QPixmap是为了在屏幕上显示图像而设计和优化的。QBitmap只是一个继承自QPixmap的便利类,确保深度为1。最后,QPicture类是一个记录和回放QPainter命令的绘图设备。

因为QImageQPaintDevice子类,所以QPainter可以用于直接在图像上绘制。当在QImage上使用QPainter时,绘制可以在与当前GUI线程不同的线程中执行。

QImage类支持由Format枚举描述的几种图像格式。其中包括单色、8位、32位和alpha混合图像,这些图像在Qt 4.x的所有版本中都可用。

QImage提供了一系列函数,可用于获取有关图像的各种信息。还有一些函数可以用于图像的变换。

由于QImage类使用隐式数据共享,QImage对象可以通过值传递。QImage对象还可以进行流式传输和比较。

备注

如果你想在Qt的静态构建中加载 QImage 对象,请参阅插件HowTo。

警告

不支持在格式为 Format_Indexed8QImage 上进行绘图。

图像文件的读取和写入#

QImage 提供了多种加载图像文件的方法:可以在构造 QImage 对象时加载文件,或者在稍后使用 load() 或 loadFromData() 函数。此外,QImage 还提供了静态的 fromData() 函数,可以构造 QImage 对象。当加载图像时,文件名可以指向磁盘上的实际文件或指向应用程序的内嵌资源之一。有关如何在应用程序的可执行文件中嵌入图像和其他资源文件的详细信息,请参阅《Qt资源系统概述》。

只需调用 save() 函数即可保存 QImage 对象。

支持的文件格式完整列表可通过 supportedImageFormats()supportedImageFormats() 函数获得。新的文件格式可以通过插件添加。默认情况下,Qt支持以下格式

格式

描述

Qt 支持

BMP

Windows 位图

读取/写入

GIF

图形交换格式(可选)

读取

JPG

联合图像专家小组

读取/写入

JPEG

联合图像专家小组

读取/写入

PNG

可移植网络图形

读取/写入

PBM

可移植位图

读取

PGM

可移植灰度图

读取

PPM

可移植图标

读取/写入

XBM

X11 位图

读取/写入

XPM

X11 图标

读取/写入

图像信息#

QImage 提供了一组函数,可以用来获取有关图像的多种信息

可用函数

几何形状

函数 size()width()height()dotsPerMeterX()dotsPerMeterY() 提供关于图像大小和宽高比的信息。

函数 rect() 返回图像的包含矩形。函数 valid() 告诉给定的坐标对是否在此矩形内。函数 offset() 返回图像期望相对于其他图像偏移的像素数,这也可以使用 setOffset() 函数进行操作。

颜色

可以将像素的坐标传递给 pixel() 函数来检索像素的颜色。函数 pixel() 返回作为 QRgb 值的颜色,该值独立于图像的格式。

在单色和8位图像的情况下,colorCount()colorTable() 函数提供了有关用于存储图像数据颜色组件的信息:函数 colorTable() 返回图像的全部颜色表。要获取单个条目,请使用 pixelIndex() 函数来检索给定坐标对的像素索引,然后使用 color() 函数来检索颜色。注意,如果您手动创建8位图像,您还必须在图像上设置有效的颜色表。

函数 hasAlphaChannel() 告诉图像的格式是否尊重 alpha 通道。函数 allGray()isGrayscale() 告诉图像的颜色是否为灰度的所有色调。

请参阅有关 像素操作图像转换 的部分。

文本

函数 text() 返回与给定文本键关联的图像文本。您可以使用 textKeys() 函数检索图像的文本键。使用 setText() 函数修改图像的文本。

底层信息

函数 depth() 返回图像的深度。支持的深度为1(单色)、8、16、24和32位。函数 bitPlaneCount() 告诉有多少位被使用。更多信息请参阅 图像格式 部分。

函数 format()bytesPerLine()sizeInBytes() 提供了有关图像中存储数据的低级信息。

cacheKey()函数返回一个数字,该数字用于唯一标识此QImage对象的内容。

像素操作#

用于操作图像像素的函数取决于图像格式。原因在于,单色和8位图像是基于索引的,并使用颜色查找表,而32位图像直接存储ARGB值。有关图像格式的更多信息,请参阅Image Formats部分。

在32位图像的情况下,可以使用setPixel()函数将指定坐标处的像素颜色更改为任何指定的ARGB四联体颜色。为了制作合适的QRgb值,请使用qRgb()(给指定的RGB值添加默认的透明度成分,即创建不透明颜色)或qRgba()函数。例如:

32位

qimage-32bit_scaled1

image = QImage(3, 3, QImage.Format_RGB32)
value = QRgb()
value = qRgb(189, 149, 39) # 0xffbd9527
image.setPixel(1, 1, value)
value = qRgb(122, 163, 39) # 0xff7aa327
image.setPixel(0, 1, value)
image.setPixel(1, 0, value)
value = qRgb(237, 187, 51) # 0xffedba31
image.setPixel(2, 1, value)

在8位和单色图像的情况下,像素值只是从图像颜色表中得到的索引。所以,setPixel()函数只能用来将指定坐标处的像素颜色更改为来自图像颜色表中的预定义颜色,即它只能改变像素的索引值。要更改或向图像颜色表中添加颜色,请使用setColor()函数。

颜色表中的条目是一个表示为QRgb值的ARGB四联体。使用qRgb()qRgba()函数制作一个适合用于setColor()函数的QRgb值。例如:

8位

qimage-8bit_scaled2

image = QImage(3, 3, QImage.Format_Indexed8)
value = QRgb()
value = qRgb(122, 163, 39) # 0xff7aa327
image.setColor(0, value)
value = qRgb(237, 187, 51) # 0xffedba31
image.setColor(1, value)
value = qRgb(189, 149, 39) # 0xffbd9527
image.setColor(2, value)
image.setPixel(0, 1, 0)
image.setPixel(1, 0, 0)
image.setPixel(1, 1, 2)
image.setPixel(2, 1, 1)

对于每个颜色通道超过8位的图像,可以使用setPixelColor()pixelColor()方法使用QColor值进行设置和获取。

QImage还提供了scanLine()函数,该函数返回指向指定扫描行像素数据的指针,以及bits()函数,该函数返回指向第一个像素数据的指针(这等效于scanLine(0))。

图像格式#

QImage中存储的每个像素都用一个整数表示。整数的大小根据格式而变化。QImage支持由Format枚举描述的几种图像格式。

单色图像使用最多两种颜色的颜色表中的1位索引进行存储。单色图像有两种不同类型:大端(最高有效位先)或小端(最低有效位先)位顺序。

8位图像使用8位索引到颜色表中存储,即每个像素有一个字节。颜色表是一个QList<QRgb>,而QRgb类型定义与一个包含ARGB四元组的无符号整数(格式为0xAARRGGBB)等效。

32位图像没有颜色表;相反,每个像素包含一个QRgb值。32位图像存储RGB(即0xffRRGGBB)、ARGB和预乘ARGB值分别有三种不同类型。在预乘格式中,红色、绿色和蓝色通道乘以α分量除以255。

可以使用format()函数检索图像的格式。使用convertToFormat()函数将图像转换为另一种格式。allGray()和isGrayscale()函数可以判断彩色图像是否可以安全地转换为灰度图像。

图像变换:

QImage支持创建新图像的几个函数,该新图像是原始图像的变换版本:createAlphaMask()函数根据本图像的alpha缓冲区构建并返回一个1-bpp掩码,而createHeuristicMask()函数为本图像创建并返回一个1-bpp启发式掩码。后一个函数通过从角落中的一个选择颜色,然后从所有边缘开始移除该颜色的像素来实现。

mirrored()函数返回所需方向上图像的镜像,scaled()返回按所需尺寸缩放的图像的副本,rgbSwapped()函数从RGB图像构建BGR图像。

scaledToWidth()和scaledToHeight()函数返回缩放后的图像副本。

transformed()函数返回一个拷贝的图像,表示使用给定的变换矩阵和变换模式变换后的图像。内部,变换矩阵调整来补偿不必要的平移,例如,transformed()返回包含原始图像中所有变换点的最小图像。静态函数trueMatrix()返回用于变换图像的实际矩阵。

还有用于就地更改图像属性的功能

函数

描述

setDotsPerMeterX()

通过设置物理米中水平方向所能放入的像素数来定义宽高比。

setDotsPerMeterY()

通过设置物理米中垂直方向所能放入的像素数来定义宽高比。

fill()

将整个图像填充给定的像素值。

invertPixels()

使用给定的InvertMode值反转图像中的所有像素值。

setColorTable()

设置用于转换颜色索引的颜色表。仅限单色和8位格式。

setColorCount()

调整颜色表的大小。仅限单色和8位格式。

参见

QImageReader QImageWriter QPixmap QSvgRendererImage Composition ExampleScribble Example

class InvertMode#

此枚举类型用于描述invertPixels()函数中像素值应如何反转。

常量

描述

QImage.InvertRgb

仅反转RGB值,alpha通道保持不变。

QImage.InvertRgba

反转所有通道,包括alpha通道。

class Format#

以下是在Qt中可用的图像格式。请参见表后的说明。

常量

描述

QImage.Format_Invalid

图像无效。

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格式(0xAARRGGBB)存储,即红色、绿色和蓝色通道乘以alpha分量除以255。如果RR、GG或BB的值高于alpha通道,则结果未定义。与普通ARGB32相比,预乘的ARGB32在某些操作(如使用alpha混合进行图像合成)中更快。

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)存储。这与Format_RGBA8888相同,只是alpha必须始终为255。(自Qt 5.2添加)

QImage.Format_RGBA8888

图像使用32位字节顺序的RGBA格式(8-8-8-8)存储。与ARGB32不同,这是一个字节顺序格式,这意味着32位编码在大端和小端架构之间不同,分别是(0xRRGGBBAA)和(0xAABBGGRR)。在任何架构上,如果按字节数据0xRR、0xGG、0xBB、0xAA读取,颜色顺序都是相同的。(自Qt 5.2添加)

QImage.Format_RGBA8888_Premultiplied

图像使用预乘的32位字节顺序RGBA格式(8-8-8-8)存储。(自Qt 5.2添加)

QImage.Format_BGR30

图像使用32位BGR格式(x-10-10-10)存储。(自Qt 5.4添加)

QImage.Format_A2BGR30_Premultiplied

图像使用32位预乘ABGR格式(2-10-10-10)存储。(自Qt 5.4添加)

QImage.Format_RGB30

图像使用32位RGB格式(x-10-10-10)存储。(自Qt 5.4添加)

QImage.Format_A2RGB30_Premultiplied

图像使用32位预乘ARGB格式(2-10-10-10)存储。(自Qt 5.4添加)

QImage.Format_Alpha8

图像使用仅8位alpha的格式存储。(自Qt 5.5添加)

QImage.Format_Grayscale8

图像使用8位灰度格式存储。(自Qt 5.5添加)

QImage.Format_Grayscale16

图像使用16位灰度格式存储。(自Qt 5.13添加)

QImage.Format_RGBX64

图像使用64位半字顺序的RGB(x)格式(16-16-16-16)存储。这与Format_RGBA64相同,只是alpha必须始终为65535。(自Qt 5.12添加)

QImage.Format_RGBA64

图像使用64位半字顺序的RGBA格式(16-16-16-16)存储。(自Qt 5.12添加)

QImage.Format_RGBA64_Premultiplied

图像使用预乘的64位半字顺序RGBA格式(16-16-16-16)存储。(自Qt 5.12添加)

QImage.Format_BGR888

图像使用24位BGR格式存储。(自Qt 5.14添加)

QImage.Format_RGBX16FPx4

图像使用4个16位半字浮点RGBx格式(16FP-16FP-16FP-16FP)存储。这与Format_RGBA16FPx4相同,只是alpha必须始终为1.0。(自Qt 6.2添加)

QImage.Format_RGBA16FPx4

图像使用4个16位半字浮点RGBA格式(16FP-16FP-16FP-16FP)存储。(自Qt 6.2添加)

QImage.Format_RGBA16FPx4_Premultiplied

图像使用预乘的4个16位半字浮点RGBA格式(16FP-16FP-16FP-16FP)存储。(自Qt 6.2添加)

QImage.Format_RGBX32FPx4

图像使用4个32位浮点RGBx格式(32FP-32FP-32FP-32FP)存储。这与Format_RGBA32FPx4相同,只是alpha必须始终为1.0。(自Qt 6.2添加)

QImage.Format_RGBA32FPx4

图像使用4个32位浮点RGBA格式(32FP-32FP-32FP-32FP)存储。(自Qt 6.2添加)

QImage.Format_RGBA32FPx4_Premultiplied

图像使用预乘的4个32位浮点RGBA格式(32FP-32FP-32FP-32FP)存储。(自Qt 6.2添加)

备注

使用QImage::Format_Indexed8格式将图像绘制到QImage对象中不受支持。

备注

应避免大多数情况下直接使用QPainter渲染到这些格式中。渲染效果最好优化到Format_RGB32Format_ARGB32_Premultiplied格式,其次是渲染到Format_RGB16Format_RGBX8888Format_RGBA8888_PremultipliedFormat_RGBX64Format_RGBA64_Premultiplied格式。

__init__(arg__1, arg__2, arg__3, arg__4)#
参数:
  • arg__1 – 字符串

  • arg__2 – 整数

  • arg__3 – 整数

  • arg__4Format

__init__()
__init__(data, width, height, bytesPerLine, format[, cleanupFunction=None[, cleanupInfo=None]])
参数:
  • data – 字符串

  • width – 整数

  • height – 整数

  • bytesPerLine – 整数

  • formatFormat

  • cleanupFunctionQImageCleanupFunction

  • cleanupInfovoid

__init__(data, width, height, format[, cleanupFunction=None[, cleanupInfo=None]])
参数:
  • data – 字符串

  • width – 整数

  • height – 整数

  • formatFormat

  • cleanupFunctionQImageCleanupFunction

  • cleanupInfovoid

__init__(width, height, format)
参数:
  • width – 整数

  • height – 整数

  • formatFormat

__init__(xpm)
参数:

xpmchar[]

__init__(size, format)
参数:
__init__(fileName[, format=None])
参数:
  • fileName – 字符串

  • format – 字符串

__init__(arg__1, arg__2, arg__3, arg__4, arg__5)
参数:
  • arg__1 – 字符串

  • arg__2 – 整数

  • arg__3 – 整数

  • arg__4 – 整数

  • arg__5Format

__init__(arg__1)
参数:

arg__1QImage

构建给定 image 的浅拷贝。

有关浅拷贝的更多信息,请参阅隐式数据共享文档。

参见

copy()

allGray()#
返回类型::

布尔值

applyColorTransform(transform)#
参数:

transformQColorTransform

bitPlaneCount()#
返回类型::

整数

bytesPerLine()#
返回类型::

整数

cacheKey()#
返回类型::

整数

color(i)#
参数:

i – 整数

返回类型::

整数

colorSpace()#
返回类型::

QColorSpace

colorTable()#
返回类型::

无符号整数的列表

colorTransformed(transform)#
参数:

transformQColorTransform

返回类型::

QImage

constBits()#
返回类型::

字符串

constScanLine(arg__1)#
参数:

arg__1 – int

返回类型::

PyObject

convertTo(f[, flags=Qt.AutoColor])#
参数:
convertToColorSpace(arg__1)#
参数:

arg__1QColorSpace

convertToFormat(f[, flags=Qt.AutoColor])#
参数:
返回类型::

QImage

convertToFormat(f, colorTable[, flags=Qt.AutoColor])
参数:
返回类型::

QImage

convertToFormat_helper(format, flags)#
参数:
返回类型::

QImage

convertToFormat_inplace(format, flags)#
参数:
返回类型::

布尔值

convertedTo(f[, flags=Qt.AutoColor])#
参数:
返回类型::

QImage

convertedToColorSpace(arg__1)#
参数:

arg__1QColorSpace

返回类型::

QImage

copy([rect=QRect()])#
参数:

rectQRect

返回类型::

QImage

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

返回的图像是从本图像中的位置(rectangle.x(), rectangle.y())处复制的,并且始终具有给定的 rectangle 的大小。

在此图像范围之外的区域,像素被设置为0。对于32位的RGB图像,这表示黑色;对于32位的ARGB图像,这表示透明的黑色;对于8位图像,这表示颜色表中索引为0的颜色,可以是任何颜色;对于1位图像,这表示Qt::color0。

如果给定的 rectangle 是一个空矩形,则整个图像将被复制。

参见

QImage()

copy(x, y, w, h)
参数:
  • x – int

  • y – int

  • w – int

  • h – int

返回类型::

QImage

这是一个重载函数。

返回的图像是从此图像中的位置(xy)复制的,并且宽度和高度始终保持不变。在此图像范围之外的区域,像素被设置为0。

createAlphaMask([flags=Qt.AutoColor])#
参数:

flags – 组合 ImageConversionFlag

返回类型::

QImage

createHeuristicMask([clipTight=true])#
参数:

clipTight – bool

返回类型::

QImage

createMaskFromColor(color[, mode=Qt.MaskInColor])#
参数:
返回类型::

QImage

detachMetadata([invalidateCache=false])#
参数:

invalidateCache – bool

deviceIndependentSize()#
返回类型::

QSizeF

dotsPerMeterX()#
返回类型::

整数

dotsPerMeterY()#
返回类型::

整数

fill(color)#
参数:

colorGlobalColor

这是一个重载函数。

用给定的 color 填充图像,颜色描述为标准全局颜色。

fill(color)
参数:

colorQColor

这是一个重载函数。

使用给定的 color 填充整个图像。

如果图像深度为1,当color等于Qt::color1时,图像将被填充为1;否则将被填充为0。

如果图像深度为8,如果存在颜色表,则图像将被填充为与颜色表中color对应的索引值;否则将被填充为0。

fill(pixel)
参数:

pixel – int

使用给定的pixelValue填充整个图像。

如果图像深度为1,仅使用最低位。如果你说fill(0),fill(2)等,图像将被填充为0s。如果你说fill(1),fill(3)等,图像将被填充为1s。如果深度为8,使用最低的8位,如果深度为16,使用最低的16位。

如果图像深度超过32位,结果是不确定的。

备注

没有对应的值获取器,尽管pixelIndex()将为索引格式返回相同的值,而pixel()用于RGB32,ARGB32和ARGB32PM格式。

参见

图像 变换

format()#
返回类型::

格式

static fromData(data[, format=None])#
参数:
  • dataQByteArrayView

  • format – 字符串

返回类型::

QImage

这是一个重载函数。

从给定的QByteArray data构建一个QImage

static fromData(data[, format=None])
参数:
返回类型::

QImage

这是一个重载函数。

从给定的QByteArray data构建一个QImage

hasAlphaChannel()#
返回类型::

布尔值

invertPixels([mode=QImage.InvertMode.InvertRgb])#
参数:

modeInvertMode

isGrayscale()#
返回类型::

布尔值

isNull()#
返回类型::

布尔值

如果它是一个空图像,则返回 true,否则返回 false

空图像的参数都设置为零,并且没有分配数据。

load(device, format)#
参数:
返回类型::

布尔值

load(fileName[, format=None])
参数:
  • fileName – 字符串

  • format – 字符串

返回类型::

布尔值

loadFromData(data[, format=None])#
参数:
  • dataQByteArrayView

  • format – 字符串

返回类型::

布尔值

这是一个重载函数。

从给定的 QByteArray data 中加载图像。

loadFromData(data[, format=None])
参数:
返回类型::

布尔值

这是一个重载函数。

从给定的 QByteArray data 中加载图像。

mirror([horizontally=false[, vertically=true]])#
参数:
  • horizontally – bool

  • vertically – bool

根据 horizontalvertical 是否设置为 true 或 false,水平垂直方向镜像图像。

参见

mirrored() Image Transformations

mirrored([horizontally=false[, vertically=true]])#
参数:
  • horizontally – bool

  • vertically – bool

返回类型::

QImage

mirrored_helper(horizontal, vertical)#
参数:
  • horizontal – bool

  • vertical – bool

返回类型::

QImage

mirrored_inplace(horizontal, vertical)#
参数:
  • horizontal – bool

  • vertical – bool

offset()#
返回类型::

QPoint

返回图像相对于其他图像定位时的偏移像素数。

参见

setOffset() 图像信息

__ne__(arg__1)#
参数:

arg__1QImage

返回类型::

布尔值

如果此图像和给定的 image 内容不同,则返回 true;否则返回 false

比较可能较慢,除非有一些明显的差异,例如不同的宽度,在这种情况下,函数将快速返回。

参见

operator=()

__eq__(arg__1)#
参数:

arg__1QImage

返回类型::

布尔值

如果此图像和给定的 image 内容相同,则返回 true;否则返回 false

比较可能较慢,除非有一些明显的差异(例如,不同的大小或格式),在这种情况下,函数将快速返回。

参见

operator=()

pixel(pt)#
参数:

ptQPoint

返回类型::

整数

返回给定 位置 的像素颜色。

如果位置无效,则结果未定义。

警告

此函数在用于大量像素操作时成本较高。当需要读取许多像素时,请使用 constBits() 或 constScanLine()。

参见

setPixel() valid() 像素操作

pixel(x, y)
参数:
  • x – int

  • y – int

返回类型::

整数

pixelColor(pt)#
参数:

ptQPoint

返回类型::

QColor

将给定 位置 的像素颜色作为 QColor 返回。

如果位置无效,则返回无效的 QColor

警告

此函数在用于大量像素操作时成本较高。当需要读取许多像素时,请使用 constBits() 或 constScanLine()。

参见

setPixel() valid() 像素操作

pixelColor(x, y)
参数:
  • x – int

  • y – int

返回类型::

QColor

pixelFormat()#
返回类型::

QPixelFormat

返回作为 FormatQPixelFormat

pixelIndex(pt)#
参数:

ptQPoint

返回类型::

整数

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

如果 位置 无效,或者图像不是调色板图像(depth() > 8),则结果未定义。

参见

valid() 像素操作

pixelIndex(x, y)
参数:
  • x – int

  • y – int

返回类型::

整数

rect()#
返回类型::

QRect

返回图像的包含矩形(0, 0, width() , height() )。

参见

图像信息

reinterpretAsFormat(f)#
参数:

fFormat

返回类型::

布尔值

rgbSwap()#

交换所有像素红色和蓝色分量的值,相当于将 RGB 图像转换为 BGR 图像。

参见

rgbSwapped() 图像变换

rgbSwapped()#
返回类型::

QImage

rgbSwapped_helper()#
返回类型::

QImage

rgbSwapped_inplace()#
save(device[, format=None[, quality=-1]])#
参数:
  • deviceQIODevice

  • format – 字符串

  • quality – int

返回类型::

布尔值

save(fileName[, format=None[, quality=-1]])
参数:
  • fileName – 字符串

  • format – 字符串

  • quality – int

返回类型::

布尔值

scaled(s[, aspectMode=Qt.IgnoreAspectRatio[, mode=Qt.FastTransformation]])#
参数:
返回类型::

QImage

返回图像的一个副本,根据给定的 sizeaspectRatioModetransformMode 按比例缩放。

../../_images/qimage-scaling1.png
  • 如果 aspectRatioMode 是 Qt::IgnoreAspectRatio,则图像会按 size 缩放。

  • 如果 aspectRatioMode 是 Qt::KeepAspectRatio,则图像会按可能的最大矩形缩放到 size 内,同时保留长宽比。

  • 如果 aspectRatioMode 是 Qt::KeepAspectRatioByExpanding,则图像会按可能的最小矩形缩放到 size 外,同时保留长宽比。

如果给定的 size 为空,则此函数返回一个空图像。

参见

isNull() Image Transformations

scaled(w, h[, aspectMode=Qt.IgnoreAspectRatio[, mode=Qt.FastTransformation]])
参数:
返回类型::

QImage

这是一个重载函数。

返回图像的一个副本,根据给定的 widthheight,按照给定的 aspectRatioModetransformMode 缩放。

如果 widthheight 为零或负数,则此函数返回一个空图像。

scaledToHeight(h[, mode=Qt.FastTransformation])#
参数:
返回类型::

QImage

返回图像的一个缩放副本。返回的图像会根据指定的 heightmode 进行缩放。

此函数会自动计算图像的宽度以保持图像的比例。

如果给出的 height 为0或负数,会返回一个空图像。

参见

图像 变换

scaledToWidth(w[, mode=Qt.FastTransformation])#
参数:
返回类型::

QImage

返回图像的缩放副本。返回的图像使用指定的转换mode按给定的width进行缩放。

此函数会自动计算图像的高度,以保持其纵横比。

如果给定的width为0或负数,则返回空图像。

参见

图像 变换

setAlphaChannel(alphaChannel)#
参数:

alphaChannelQImage

setColor(i, c)#
参数:
  • i – 整数

  • c – int

将颜色表中的给定index处的颜色设置为给定的colorValue。颜色值是一个ARGB四元组。

如果index在当前颜色表的大小之外,它会通过setColorCount()进行扩展。

参见

colorCount() Pixel Manipulation

setColorCount(arg__1)#
参数:

arg__1 – int

setColorSpace(arg__1)#
参数:

arg__1QColorSpace

setColorTable(colors)#
参数:

colors – 无符号整数的列表

setDevicePixelRatio(scaleFactor)#
参数:

scaleFactor – float

setDotsPerMeterX(arg__1)#
参数:

arg__1 – int

setDotsPerMeterY(arg__1)#
参数:

arg__1 – int

setOffset(arg__1)#
参数:

arg__1QPoint

设置图像相对于其他图像在定位时应当偏移的像素数,为 offset

参见

offset() 图像信息

setPixel(pt, index_or_rgb)#
参数:
  • ptQPoint

  • index_or_rgb – int

设置给定 position 位置的像素索引或颜色至 index_or_rgb

如果图像格式为单色或调色板,所提供的 index_or_rgb 值必须是图像颜色表中的一个索引,否则参数必须是 QRgb 值。

如果 position 不是图像中的有效坐标对,或者说在单色和调色板图像的情况下,index_or_rgb >= colorCount(),则结果是不确定的。

警告

由于调用了内部的 detach() 函数,该函数代价较大;如果性能是考虑因素,我们建议使用 scanLine() 或 bits() 直接访问像素数据。

参见

pixel() 像素操作

setPixel(x, y, index_or_rgb)
参数:
  • x – int

  • y – int

  • index_or_rgb – int

setPixelColor(pt, c)#
参数:

设置给定位置的颜色至 color

如果位置不是图像中的有效坐标对,或者图像格式为单色或调色板,则结果是不确定的。

警告

由于调用了内部的 detach() 函数,该函数代价较大;如果性能是考虑因素,我们建议使用 scanLine() 或 bits() 直接访问像素数据。

参见

pixel() 像素操作

setPixelColor(x, y, c)
参数:
  • x – int

  • y – int

  • cQColor

setText(key, value)#
参数:
  • key – str

  • value – str

警告

本节包含从C++自动翻译到Python的代码片段,可能存在错误。

将图像文本设置为给定的 text,并与之关联指定的 key

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

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

并非所有图像格式都支持嵌入文本。您可以使用supportsOption()方法来查看特定的图像或格式是否支持嵌入文本。我们给出一个示例

writer = QImageWriter()
writer.setFormat("png")
if writer.supportsOption(QImageIOHandler.Description):
    print("Png supports embedded text")

您可以使用supportedImageFormats()方法来找出您可用的图像格式。

参见

text()textKeys()

size#
返回类型::

QSize

返回图像的尺寸,即其width()height()

参见

Image Information #

sizeInBytes#
返回类型::

整数

smoothScaledw, h#
参数:
  • w – int

  • h – int

返回类型::

QImage

swapother#
参数:

otherQImage

将图像other与当前图像交换。此操作非常快,且从未失败。

text[key=""]#
参数:

key – str

返回类型::

字符串

textKeys#
返回类型::

字符串列表

static toImageFormatformat#
参数:

formatQPixelFormat

返回类型::

格式

format转换为Format

static toPixelFormatformat#
参数:

formatFormat

返回类型::

QPixelFormat

format 转换为 QPixelFormat

transformed(matrix[, mode=Qt.FastTransformation])#
参数:
返回类型::

QImage

static trueMatrix(arg__1, w, h)#
参数:
返回类型::

QTransform

返回用于将具有给定 widthheightmatrix 的图像进行变换的实际矩阵。

在通过 transformed() 函数变换图像时,变换矩阵会内部调整以补偿不需要的平移,即 transformed() 返回包含原始图像所有变换点的最小图像。此函数返回修改后的矩阵,该矩阵可以将点正确地从原始图像映射到新图像。

与其它重载不同,此函数创建可用于在图像上执行透视变换的变换矩阵。

参见

图像 变换

valid(pt)#
参数:

ptQPoint

返回类型::

布尔值

如果 pos 是图像内的有效坐标对,则返回 true;否则返回 false

valid(x, y)
参数:
  • x – int

  • y – int

返回类型::

布尔值