- class QImage#
QImage
类提供了一种与硬件无关的图像表示形式,允许直接访问像素数据,并可用作绘图设备。了解更多信息...概述
方法
def
__init__()
def
allGray()
def
applyColorTransform()
def
bitPlaneCount()
def
bytesPerLine()
def
cacheKey()
def
color()
def
colorSpace()
def
colorTable()
def
colorTransformed()
def
constBits()
def
constScanLine()
def
convertTo()
def
convertToColorSpace()
定义
copy()
定义
fill()
定义
format()
定义
isNull()
定义
load()
定义
mirror()
定义
mirrored()
定义
offset()
定义
__ne__()
定义
__eq__()
定义
pixel()
定义
pixelColor()
定义
pixelIndex()
定义
rect()
定义
rgbSwap()
定义
rgbSwapped()
定义
save()
定义
scaled()
定义
setColor()
定义
setOffset()
定义
setPixel()
定义
setText()
定义
size()
定义
swap()
定义
text()
定义
textKeys()
定义
valid()
静态函数#
定义
fromData()
定义
trueMatrix()
备注
本文档可能包含一些从C++自动翻译而来的代码片段。我们始终欢迎片段翻译的贡献。如果您发现翻译中的问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建一个工单来告知我们。
详细说明#
警告
本节包含从C++自动翻译到Python的代码片段,可能存在错误。
Qt提供了四个用于处理图像数据的类:
QImage
、QPixmap
、QBitmap
和QPicture
。QImage
是为I/O、直接像素访问和操作而设计和优化的,而QPixmap
是为了在屏幕上显示图像而设计和优化的。QBitmap
只是一个继承自QPixmap
的便利类,确保深度为1。最后,QPicture
类是一个记录和回放QPainter
命令的绘图设备。因为
QImage
是QPaintDevice
子类,所以QPainter
可以用于直接在图像上绘制。当在QImage
上使用QPainter
时,绘制可以在与当前GUI线程不同的线程中执行。QImage
类支持由Format
枚举描述的几种图像格式。其中包括单色、8位、32位和alpha混合图像,这些图像在Qt 4.x的所有版本中都可用。QImage
提供了一系列函数,可用于获取有关图像的各种信息。还有一些函数可以用于图像的变换。由于
QImage
类使用隐式数据共享,QImage
对象可以通过值传递。QImage
对象还可以进行流式传输和比较。备注
如果你想在Qt的静态构建中加载
QImage
对象,请参阅插件HowTo。警告
不支持在格式为
Format_Indexed8
的QImage
上进行绘图。图像文件的读取和写入#
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位
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位
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()
通过设置物理米中垂直方向所能放入的像素数来定义宽高比。
将整个图像填充给定的像素值。
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_RGB32
和Format_ARGB32_Premultiplied
格式,其次是渲染到Format_RGB16
、Format_RGBX8888
、Format_RGBA8888_Premultiplied
、Format_RGBX64
和Format_RGBA64_Premultiplied
格式。
- __init__()
- __init__(data, width, height, bytesPerLine, format[, cleanupFunction=None[, cleanupInfo=None]])
- 参数:
data – 字符串
width – 整数
height – 整数
bytesPerLine – 整数
format –
Format
cleanupFunction –
QImageCleanupFunction
cleanupInfo –
void
- __init__(data, width, height, format[, cleanupFunction=None[, cleanupInfo=None]])
- 参数:
data – 字符串
width – 整数
height – 整数
format –
Format
cleanupFunction –
QImageCleanupFunction
cleanupInfo –
void
- __init__(width, height, format)
- 参数:
width – 整数
height – 整数
format –
Format
- __init__(xpm)
- 参数:
xpm –
char[]
- __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__5 –
Format
- __init__(arg__1)
- 参数:
arg__1 –
QImage
构建给定
image
的浅拷贝。有关浅拷贝的更多信息,请参阅隐式数据共享文档。
参见
- allGray()#
- 返回类型::
布尔值
- applyColorTransform(transform)#
- 参数:
transform –
QColorTransform
- bitPlaneCount()#
- 返回类型::
整数
- bytesPerLine()#
- 返回类型::
整数
- cacheKey()#
- 返回类型::
整数
- color(i)#
- 参数:
i – 整数
- 返回类型::
整数
- colorSpace()#
- 返回类型::
- colorTable()#
- 返回类型::
无符号整数的列表
- colorTransformed(transform)#
- 参数:
transform –
QColorTransform
- 返回类型::
- constBits()#
- 返回类型::
字符串
- constScanLine(arg__1)#
- 参数:
arg__1 – int
- 返回类型::
PyObject
- convertTo(f[, flags=Qt.AutoColor])#
- 参数:
f –
Format
flags – 组合
ImageConversionFlag
- convertToColorSpace(arg__1)#
- 参数:
arg__1 –
QColorSpace
- convertToFormat(f[, flags=Qt.AutoColor])#
- 参数:
f –
Format
flags – 组合
ImageConversionFlag
- 返回类型::
- convertToFormat(f, colorTable[, flags=Qt.AutoColor])
- 参数:
f –
Format
colorTable – .无符号整数的列表
flags – 组合
ImageConversionFlag
- 返回类型::
- convertToFormat_helper(format, flags)#
- 参数:
format –
Format
flags – 组合
ImageConversionFlag
- 返回类型::
- convertToFormat_inplace(format, flags)#
- 参数:
format –
Format
flags – 组合
ImageConversionFlag
- 返回类型::
布尔值
- convertedTo(f[, flags=Qt.AutoColor])#
- 参数:
f –
Format
flags – 组合
ImageConversionFlag
- 返回类型::
- convertedToColorSpace(arg__1)#
- 参数:
arg__1 –
QColorSpace
- 返回类型::
返回图像的一个子区域作为新的图像。
返回的图像是从本图像中的位置(
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
- 返回类型::
这是一个重载函数。
返回的图像是从此图像中的位置(
x
,y
)复制的,并且宽度和高度始终保持不变。在此图像范围之外的区域,像素被设置为0。- createAlphaMask([flags=Qt.AutoColor])#
- 参数:
flags – 组合
ImageConversionFlag
- 返回类型::
- detachMetadata([invalidateCache=false])#
- 参数:
invalidateCache – bool
- dotsPerMeterX()#
- 返回类型::
整数
- dotsPerMeterY()#
- 返回类型::
整数
- fill(color)#
- 参数:
color –
GlobalColor
这是一个重载函数。
用给定的
color
填充图像,颜色描述为标准全局颜色。- fill(color)
- 参数:
color –
QColor
这是一个重载函数。
使用给定的
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位,结果是不确定的。
这是一个重载函数。
从给定的QByteArray
data
构建一个QImage
。- static fromData(data[, format=None])
- 参数:
data –
QByteArray
format – 字符串
- 返回类型::
这是一个重载函数。
从给定的QByteArray
data
构建一个QImage
。- hasAlphaChannel()#
- 返回类型::
布尔值
- invertPixels([mode=QImage.InvertMode.InvertRgb])#
- 参数:
mode –
InvertMode
- isGrayscale()#
- 返回类型::
布尔值
- isNull()#
- 返回类型::
布尔值
如果它是一个空图像,则返回
true
,否则返回false
。空图像的参数都设置为零,并且没有分配数据。
- load(fileName[, format=None])
- 参数:
fileName – 字符串
format – 字符串
- 返回类型::
布尔值
- loadFromData(data[, format=None])#
- 参数:
data –
QByteArrayView
format – 字符串
- 返回类型::
布尔值
这是一个重载函数。
从给定的 QByteArray
data
中加载图像。- loadFromData(data[, format=None])
- 参数:
data –
QByteArray
format – 字符串
- 返回类型::
布尔值
这是一个重载函数。
从给定的 QByteArray
data
中加载图像。- mirror([horizontally=false[, vertically=true]])#
- 参数:
horizontally – bool
vertically – bool
根据
horizontal
和vertical
是否设置为 true 或 false,水平垂直方向镜像图像。参见
mirrored()
Image Transformations
- mirrored([horizontally=false[, vertically=true]])#
- 参数:
horizontally – bool
vertically – bool
- 返回类型::
- mirrored_inplace(horizontal, vertical)#
- 参数:
horizontal – bool
vertical – bool
返回图像相对于其他图像定位时的偏移像素数。
参见
setOffset()
图像信息
如果此图像和给定的
image
内容不同,则返回true
;否则返回false
。比较可能较慢,除非有一些明显的差异,例如不同的宽度,在这种情况下,函数将快速返回。
参见
operator=()
如果此图像和给定的
image
内容相同,则返回true
;否则返回false
。比较可能较慢,除非有一些明显的差异(例如,不同的大小或格式),在这种情况下,函数将快速返回。
参见
operator=()
返回给定
位置
的像素颜色。如果位置无效,则结果未定义。
- pixel(x, y)
- 参数:
x – int
y – int
- 返回类型::
整数
将给定
位置
的像素颜色作为QColor
返回。如果位置无效,则返回无效的
QColor
。- pixelColor(x, y)
- 参数:
x – int
y – int
- 返回类型::
- pixelFormat()#
- 返回类型::
返回作为
Format
的QPixelFormat
返回给定
位置
的像素索引。如果
位置
无效,或者图像不是调色板图像(depth() > 8),则结果未定义。参见
valid()
像素操作- pixelIndex(x, y)
- 参数:
x – int
y – int
- 返回类型::
整数
返回图像的包含矩形(0, 0,
width()
,height()
)。参见
图像信息
- rgbSwap()#
交换所有像素红色和蓝色分量的值,相当于将 RGB 图像转换为 BGR 图像。
参见
rgbSwapped()
图像变换- rgbSwapped_inplace()#
- save(device[, format=None[, quality=-1]])#
- 参数:
device –
QIODevice
format – 字符串
quality – int
- 返回类型::
布尔值
- save(fileName[, format=None[, quality=-1]])
- 参数:
fileName – 字符串
format – 字符串
quality – int
- 返回类型::
布尔值
- scaled(s[, aspectMode=Qt.IgnoreAspectRatio[, mode=Qt.FastTransformation]])#
- 参数:
s -
QSize
aspectMode -
AspectRatioMode
mode -
TransformationMode
- 返回类型::
返回图像的一个副本,根据给定的
size
、aspectRatioMode
和transformMode
按比例缩放。如果
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]])
- 参数:
w – int
h – int
aspectMode -
AspectRatioMode
mode -
TransformationMode
- 返回类型::
这是一个重载函数。
返回图像的一个副本,根据给定的
width
和height
,按照给定的aspectRatioMode
和transformMode
缩放。如果
width
或height
为零或负数,则此函数返回一个空图像。- scaledToHeight(h[, mode=Qt.FastTransformation])#
- 参数:
h – int
mode -
TransformationMode
- 返回类型::
返回图像的一个缩放副本。返回的图像会根据指定的
height
和mode
进行缩放。此函数会自动计算图像的宽度以保持图像的比例。
如果给出的
height
为0或负数,会返回一个空图像。参见
图像 变换
- scaledToWidth(w[, mode=Qt.FastTransformation])#
- 参数:
w – int
mode -
TransformationMode
- 返回类型::
返回图像的缩放副本。返回的图像使用指定的转换
mode
按给定的width
进行缩放。此函数会自动计算图像的高度,以保持其纵横比。
如果给定的
width
为0或负数,则返回空图像。参见
图像 变换
- setColor(i, c)#
- 参数:
i – 整数
c – int
将颜色表中的给定
index
处的颜色设置为给定的colorValue
。颜色值是一个ARGB四元组。如果
index
在当前颜色表的大小之外,它会通过setColorCount()
进行扩展。参见
colorCount()
Pixel Manipulation
- setColorCount(arg__1)#
- 参数:
arg__1 – int
- setColorSpace(arg__1)#
- 参数:
arg__1 –
QColorSpace
- setColorTable(colors)#
- 参数:
colors – 无符号整数的列表
- setDevicePixelRatio(scaleFactor)#
- 参数:
scaleFactor – float
- setDotsPerMeterX(arg__1)#
- 参数:
arg__1 – int
- setDotsPerMeterY(arg__1)#
- 参数:
arg__1 – int
设置图像相对于其他图像在定位时应当偏移的像素数,为
offset
。参见
offset()
图像信息
设置给定
position
位置的像素索引或颜色至index_or_rgb
。如果图像格式为单色或调色板,所提供的
index_or_rgb
值必须是图像颜色表中的一个索引,否则参数必须是QRgb
值。如果
position
不是图像中的有效坐标对,或者说在单色和调色板图像的情况下,index_or_rgb
>=colorCount()
,则结果是不确定的。- setPixel(x, y, index_or_rgb)
- 参数:
x – int
y – int
index_or_rgb – int
设置给定位置的颜色至
color
。如果位置不是图像中的有效坐标对,或者图像格式为单色或调色板,则结果是不确定的。
- setPixelColor(x, y, c)
- 参数:
x – int
y – int
c –
QColor
- 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()
返回图像的尺寸,即其
width()
和height()
。参见
Image
Information
#-
sizeInBytes
# - 返回类型::
整数
-
swap
other# - 参数:
other –
QImage
将图像
other
与当前图像交换。此操作非常快,且从未失败。-
text
[key=""]# - 参数:
key – str
- 返回类型::
字符串
-
textKeys
# - 返回类型::
字符串列表
将
format
转换为Format
。将
format
转换为QPixelFormat
- transformed(matrix[, mode=Qt.FastTransformation])#
- 参数:
matrix –
QTransform
mode -
TransformationMode
- 返回类型::
- static trueMatrix(arg__1, w, h)#
- 参数:
arg__1 –
QTransform
w – int
h – int
- 返回类型::
返回用于将具有给定
width
、height
和matrix
的图像进行变换的实际矩阵。在通过 transformed() 函数变换图像时,变换矩阵会内部调整以补偿不需要的平移,即 transformed() 返回包含原始图像所有变换点的最小图像。此函数返回修改后的矩阵,该矩阵可以将点正确地从原始图像映射到新图像。
与其它重载不同,此函数创建可用于在图像上执行透视变换的变换矩阵。
参见
图像 变换
如果
pos
是图像内的有效坐标对,则返回true
;否则返回false
。参见
- valid(x, y)
- 参数:
x – int
y – int
- 返回类型::
布尔值