PySide6.QtGui.QPixelFormat¶
- class QPixelFormat¶
QPixelFormat是一个用于描述图形缓冲区中不同像素布局的类。更多…概要¶
方法¶
def
__init__()def
alphaPosition()def
alphaSize()def
alphaUsage()def
bitsPerPixel()def
blackSize()def
blueSize()def
brightnessSize()def
byteOrder()def
channelCount()def
colorModel()def
cyanSize()def
greenSize()def
hueSize()def
lightnessSize()def
magentaSize()def
__ne__()def
__eq__()def
premultiplied()def
redSize()def
saturationSize()def
subEnum()def
yellowSize()def
yuvLayout()
注意
本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。
详细描述¶
在Qt中,经常需要表示图形缓冲区中像素的布局。内部
QPixelFormat将所有内容存储在64位数据结构中。这提供了性能,但也带来了一些限制。QPixelFormat可以描述5个颜色通道和1个透明度通道,每个通道可以使用6位来描述颜色通道的大小。alpha通道的位置用一个单独的枚举来描述。这是为了能够描述像ARGB32这样的
QImage格式,以及描述像RBGA8888这样的典型OpenGL格式。像素应该如何读取是由
TypeInterpretation枚举决定的。它描述了颜色值是应该逐字节读取,还是应该将像素作为一个完整的整数读取然后进行掩码处理。不支持描述YUV的宏像素。相反,已经制作了一个YUV格式的列表。当
QPixelFormat描述YUV格式时,bitsPerPixel值已通过YUV布局枚举推导出来。此外,除了第五个颜色通道应存储bitsPerPixel值外,所有颜色通道都应设置为零。另请参阅
- class FieldWidth¶
- class Field¶
- class ColorModel¶
此枚举类型用于描述像素格式的颜色模型。Alpha 在 5.5 版本中添加。
常量
描述
QPixelFormat.RGB
颜色模型为RGB。
QPixelFormat.BGR
这在逻辑上是RGB的相反字节序版本。然而,为了便于使用,它有自己的模型。
QPixelFormat.Indexed
颜色模型使用调色板。
QPixelFormat.Grayscale
颜色模型为灰度。
QPixelFormat.CMYK
颜色模型是CMYK。
QPixelFormat.HSL
颜色模型是HSL。
QPixelFormat.HSV
颜色模型为HSV。
QPixelFormat.YUV
颜色模型是YUV。
QPixelFormat.Alpha
没有颜色模型,仅使用alpha。
- class AlphaUsage¶
此枚举描述了是否使用alpha通道。有时像素格式会有alpha通道的大小,但实际上像素格式并不使用alpha通道。例如,RGB32就是这样的格式。RGB通道每个都是8位,没有alpha通道。但每个像素的完整大小是32。因此,alpha通道的大小是8,但alpha通道被忽略。需要注意的是,在这种情况下,alpha通道的位置是重要的。
常量
描述
QPixelFormat.IgnoresAlpha
不使用alpha通道。
QPixelFormat.UsesAlpha
使用了alpha通道。
- class AlphaPosition¶
此枚举类型用于描述相对于颜色通道的alpha通道位置。
常量
描述
QPixelFormat.AtBeginning
Alpha通道将放在颜色通道的前面。例如:ARGB。
QPixelFormat.AtEnd
Alpha通道将放在颜色通道的后面。例如RGBA。
- class AlphaPremultiplied¶
此枚举类型描述了布尔状态,即是否将alpha通道乘以颜色通道。
常量
描述
QPixelFormat.NotPremultiplied
alpha通道未乘入颜色通道。
QPixelFormat.Premultiplied
alpha通道被乘入颜色通道。
- class TypeInterpretation¶
此枚举描述了每个像素的解释方式。如果一个像素被读取为一个完整的32位无符号整数,然后每个通道被屏蔽掉,或者每个字节被读取为无符号字符值。通常
QImage格式将一个像素解释为无符号整数,然后颜色通道被屏蔽掉。另一方面,OpenGL通常将像素解释为“一个接一个的字节”,即无符号字节。QImage也有格式 Format_RGBA8888(及其衍生格式),其中像素被解释为无符号字节。OpenGL 有扩展,使得可以以无符号整数格式上传像素缓冲区。
上图显示了内存中作为无符号整数读取的ARGB像素。然而,如果在小端系统上逐字节读取此像素,第一个字节将包含B通道。下一个字节将是G通道,然后是R通道,最后是A通道。这表明在小端系统上,每个像素的解释对于整数格式是重要的。在大端系统上则不是这种情况。
常量
描述
QPixelFormat.UnsignedInteger
QPixelFormat.UnsignedShort
QPixelFormat.UnsignedByte
QPixelFormat.FloatingPoint
- class YUVLayout¶
YUV 不是通过描述颜色通道的大小来表示的。这是因为 YUV 经常使用宏像素,使得单独颜色通道的概念无效。相反,不同的 YUV 布局通过这个枚举来描述。
常量
描述
QPixelFormat.YUV444
QPixelFormat.YUV422
QPixelFormat.YUV411
QPixelFormat.YUV420P
QPixelFormat.YUV420SP
QPixelFormat.YV12
QPixelFormat.UYVY
QPixelFormat.YUYV
QPixelFormat.NV12
QPixelFormat.NV21
QPixelFormat.IMC1
QPixelFormat.IMC2
QPixelFormat.IMC3
QPixelFormat.IMC4
QPixelFormat.Y8
QPixelFormat.Y16
- class ByteOrder¶
此枚举描述了像素格式的字节顺序。此枚举大多被忽略,但在YUV格式中有一些用例。BGR格式有自己的颜色模型,不应通过在RGB格式上使用相反的字节顺序来描述。
常量
描述
QPixelFormat.LittleEndian
字节顺序为小端序。
QPixelFormat.BigEndian
字节顺序为大端序。
QPixelFormat.CurrentSystemEndian
此枚举不会被存储,但在构造函数中会转换为与当前系统枚举匹配的字节序枚举。
- __init__()¶
创建一个空像素格式。此格式映射到
Format_Invalid。- __init__(colorModel, firstSize, secondSize, thirdSize, fourthSize, fifthSize, alphaSize, alphaUsage, alphaPosition, premultiplied, typeInterpretation[, byteOrder=QPixelFormat.ByteOrder.CurrentSystemEndian[, subEnum=0]])
- Parameters:
colorModel –
ColorModelfirstSize – int
secondSize – int
thirdSize – int
fourthSize – int
fifthSize – int
alphaSize – int
alphaUsage –
AlphaUsagealphaPosition –
AlphaPosition预乘 –
AlphaPremultipliedtypeInterpretation –
TypeInterpretationbyteOrder –
ByteOrdersubEnum – int
创建一个
QPixelFormat,将其数据分配给属性。colorModel将被放入一个4位长的缓冲区中。firstSizesecondSizethirdSizefourthSizefifthSizealphaSize都用于表示通道的大小。这些通道将根据colorModel用于不同的用途。对于 RGB,firstSize 将表示红色通道。对于 CMYK,它将表示青色通道的值。alphaUsage表示是否使用了alpha通道。alphaPosition是 alpha 通道的位置。premultiplied表示是否已经将 alpha 通道与颜色通道相乘。typeInterpretation是像素的解释方式。byteOrder表示像素格式的字节序。默认值为CurrentSystemEndian。subEnum用于需要存储一些额外信息的颜色模型,通过提供一个额外的枚举来实现。YUV 使用它来存储 YUV 类型,默认值为 0。- alphaPosition()¶
- Return type:
alphaPosition 的访问器函数。
- alphaSize()¶
- Return type:
整数
用于访问alpha通道大小的访问器函数。
- alphaUsage()¶
- Return type:
alphaUsage的访问器函数。
- bitsPerPixel()¶
- Return type:
整数
用于每个像素使用的位数的访问器函数。此函数返回颜色通道的总和加上alpha通道的大小。
- blackSize()¶
- Return type:
整数
黑色/键颜色通道的访问器函数。
- blueSize()¶
- Return type:
整数
蓝色通道大小的访问器函数。
- brightnessSize()¶
- Return type:
整数
亮度通道大小的访问器函数。
字节顺序几乎总是设置为当前系统的字节顺序。然而,描述一些YUV格式时可能会有用。此函数永远不应返回
CurrentSystemEndian,因为此值在构造函数中被转换为一个字节顺序值。- channelCount()¶
- Return type:
整数
用于获取channelCount的访问器函数。通道计数是通过大小大于0的颜色通道推导出来的,如果alpha通道的大小大于0。
- colorModel()¶
- Return type:
用于获取颜色模型的访问器函数。
- cyanSize()¶
- Return type:
整数
青色颜色通道的访问器函数。
- greenSize()¶
- Return type:
整数
绿色通道大小的访问器函数。
- hueSize()¶
- Return type:
整数
色调通道大小的访问器函数。
- lightnessSize()¶
- Return type:
整数
用于亮度通道大小的访问器函数。
- magentaSize()¶
- Return type:
整数
用于洋红色通道的访问器函数。
- __ne__(fmt2)¶
- Parameters:
fmt2 –
QPixelFormat- Return type:
布尔
- __eq__(fmt2)¶
- Parameters:
fmt2 –
QPixelFormat- Return type:
布尔
- premultiplied()¶
- Return type:
用于
AlphaPremultiplied枚举的访问器函数。这表示是否将alpha通道乘入颜色通道。- redSize()¶
- Return type:
整数
红色通道大小的访问器函数。
- saturationSize()¶
- Return type:
整数
饱和度通道大小的访问器函数。
- subEnum()¶
- Return type:
整数
用于颜色通道或像素类型表示的访问器函数。
另请参阅
- yellowSize()¶
- Return type:
整数
黄色颜色通道的访问器函数。
用于访问
YUVLayout的函数。由于YUV颜色模型使用宏像素,因此很难描述YUV像素格式的颜色通道。相反,像素的布局被存储为一个枚举。