- 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()
定义
__ne__()
定义
__eq__()
定义
redSize()
定义
subEnum()
定义
yellowSize()
定义
yuvLayout()
注意
本文档可能包含从C++自动翻译成Python的代码片段。我们随时欢迎对代码片段翻译的贡献。如果您发现翻译存在问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建工单来告诉我们。
详细描述#
在Qt中,经常需要表示图形缓冲区中像素的布局。在内部,
QPixelFormat
将所有内容存储在一个64位数据结构中。这提供了性能,但也带来了一些限制。QPixelFormat
可以描述5个颜色通道和1个alpha通道,每个通道可以使用6位来描述该通道的大小。alpha通道的位置使用一个单独的枚举来描述。这是为了能够描述像ARGB32这样的
QImage
格式,同时也描述典型的OpenGL格式,如RBGA8888。像素应该如何读取由
TypeInterpretation
枚举确定。它描述了颜色值是否应该逐字节读取,或者像素是否应该作为一个完整的int读取后进行屏蔽。没有支持描述YUV的宏像素。相反,已经制作了一份YUV格式的列表。当使用
QPixelFormat
描述YUV格式时,bitsPerPixel
的值是通过YUV布局枚举推算的。此外,颜色通道应全部设置为0,除了第五个颜色通道应存储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__(colorModel, firstSize, secondSize, thirdSize, fourthSize, fifthSize, alphaSize, alphaUsage, alphaPosition, premultiplied, typeInterpretation[, byteOrder=QPixelFormat.ByteOrder.CurrentSystemEndian[, subEnum=0]])#
- 参数:
colorModel -
ColorModel
firstSize - int
secondSize - int
thirdSize - int
fourthSize - int
fifthSize - int
alphaSize - int
alphaUsage -
AlphaUsage
alphaPosition -
AlphaPosition
premultiplied -
AlphaPremultiplied
typeInterpretation -
TypeInterpretation
byteOrder -
ByteOrder
subEnum - int
创建一个
QPixelFormat
实例,将数据分配给其属性。colorModel
会被放入一个长度为 4 位的缓冲区。firstSize
、secondSize
、thirdSize
、fourthSize
、fifthSize
和alphaSize
都代表了通道的大小。这些通道将根据colorModel
的不同用途而使用。对于 RGB,firstSize 表示红色通道。在 CMYK 中,它将表示青色通道的值。alphaUsage
表示是否使用 alpha 通道。alphaPosition
是 alpha 通道的位置。premultiplied
表示 alpha 通道是否已经与颜色通道相乘。typeInterpretation
表示像素如何被解释。byteOrder
表示像素格式的字节序。默认为CurrentSystemEndian
。subEnum
用于存储额外信息的colorModels,需要提供一个额外的枚举。这用于YUV存储YUV类型。默认值是0。- __init__()
创建一个空的中像素格式。该格式映射到
Format_Invalid
.- alphaPosition()#
- 返回类型:
alphaPosition的访问器函数。
- alphaSize()#
- 返回类型:
int
alpha通道大小的访问器函数。
- alphaUsage()#
- 返回类型:
alphaUsage的访问器函数。
- bitsPerPixel()#
- 返回类型:
int
每个像素使用的位数的访问器函数。此函数返回颜色通道的总和+alpha通道的大小。
- blackSize()#
- 返回类型:
int
黑色键颜色通道的访问器函数。
- blueSize()#
- 返回类型:
int
蓝色颜色通道的大小的访问器函数。
- brightnessSize()#
- 返回类型:
int
亮度通道大小的访问器函数。
字节顺序通常是设置为当前系统的字节顺序。然而,对于一些YUV格式来说,这可能是很有用的。该函数不应返回《a class="reference internal" href="#PySide6.QtGui.QPixelFormat.ByteOrder" title="PySide6.QtGui.QPixelFormat.ByteOrder">
CurrentSystemEndian
,因为这个值在构造函数中被转换为端序值。- channelCount()#
- 返回类型:
int
获取channelCount的访问器函数。通道计数是通过颜色通道(大小>0)以及如果alpha通道的大小>0来推断的。
- colorModel()#
- 返回类型:
获取colorModel的访问器函数。
- cyanSize()#
- 返回类型:
int
青色颜色通道的访问器函数。
- greenSize()#
- 返回类型:
int
绿色颜色通道的大小的访问器函数。
- hueSize()#
- 返回类型:
int
色调通道大小的访问器函数。
- lightnessSize()#
- 返回类型:
int
亮度通道大小的访问器函数。
- magentaSize()#
- 返回类型:
int
红色通道的访问器函数。
- __ne__(fmt2)#
- 参数:
fmt2 –
QPixelFormat
- 返回类型:
bool
- __eq__(fmt2)#
- 参数:
fmt2 –
QPixelFormat
- 返回类型:
bool
- premultiplied()#
- 返回类型:
AlphaPremultiplied枚举的访问器函数。这表示alpha通道是否乘到颜色通道中。
- redSize()#
- 返回类型:
int
红色颜色通道大小的访问器函数。
- saturationSize()#
- 返回类型:
int
饱和度通道大小的访问器函数。
- subEnum()#
- 返回类型:
int
颜色通道或像素的类型表示的访问器函数。
另请参阅
- yellowSize()#
- 返回类型:
int
黄色颜色通道的访问器函数。
YUVLayout的访问器函数。由于YUV颜色模型使用宏像素,因此难以描述YUV像素格式的颜色通道。相反,像素的布局存储为一个枚举。