PySide6.QtGui.QColorSpace

class QColorSpace

QColorSpace 类提供了一个颜色空间的抽象。更多

概要

方法

静态函数

注意

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

详细描述

颜色值可以以不同的方式解释,并且基于解释可以存在于不同的空间中。我们称之为颜色空间

QColorSpace 提供了创建多个预定义颜色空间的访问权限,并且可以生成用于将颜色从一个颜色空间转换到另一个颜色空间的 QColorTransforms。

QColorSpace 也可以表示由ICC配置文件定义或嵌入在图像中的色彩空间,这些色彩空间不符合预定义的色彩空间。

一般来说,色彩空间可以被理解为原色集合和传递函数的组合。原色定义了色彩空间的轴,而传递函数则定义了值如何在轴上映射。对于Rgb色彩空间,原色由三种原色定义,这些原色精确地表示红色、绿色和蓝色在该特定色彩空间中的表现,以及一个白色,表示纯白色的位置和亮度。对于灰度色彩空间,只需要一个白色原色。原色可表示的颜色范围称为色域,能够表示更广颜色范围的色彩空间也被称为广色域色彩空间。

传输函数或伽马曲线决定了颜色空间中的每个组件是如何编码的。使用这些是因为人类的感知不是线性运作的,传输函数试图确保颜色在人类眼中看起来是均匀分布的。

class NamedColorSpace

预定义的颜色空间。

常量

描述

QColorSpace.SRgb

sRGB 色彩空间,Qt 默认在此色彩空间下操作。它非常接近大多数经典显示器的操作方式,也是大多数软件和硬件支持的模式。sRGB 的 ICC 注册

QColorSpace.SRgbLinear

具有线性伽马的sRGB色彩空间。适用于伽马校正的混合。

QColorSpace.AdobeRgb

Adobe RGB 色彩空间是一个经典的广色域色彩空间,使用 2.2 的伽马值。Adobe RGB (1998) 的 ICC 注册

QColorSpace.DisplayP3

一种使用DCI-P3原色的色彩空间,但具有sRGB的白点和传输函数。常见于现代广色域屏幕。ICC registration of DCI-P3

QColorSpace.ProPhotoRgb

Pro Photo RGB 色彩空间,也称为 ROMM RGB,是一种非常广泛的色彩空间。ICC registration of ROMM RGB

QColorSpace.Bt2020

BT.2020,也称为Rec.2020,是HDR电视的基本色彩空间。ICC registration of BT.2020

QColorSpace.Bt2100Pq

BT.2100(PQ),也称为Rec.2100或HDR10,是一种HDR编码,具有与Bt2020相同的原色,但使用感知量化传递函数。ICC registration of BT.2100

QColorSpace.Bt2100Hlg

BT.2100 (HLG) 是一种HDR编码,具有与Bt2020相同的原色,但使用混合对数-伽马传递函数。

class Primaries

预定义的主色调集合。

常量

描述

QColorSpace.Primaries.Custom

原色未定义或不匹配任何预定义的集合。

QColorSpace.Primaries.SRgb

sRGB原色

QColorSpace.Primaries.AdobeRgb

Adobe RGB 原色

QColorSpace.Primaries.DciP3D65

使用D65白点的DCI-P3原色

QColorSpace.Primaries.ProPhotoRgb

使用D50白点的ProPhoto RGB原色

QColorSpace.Primaries.Bt2020

使用D65白点的BT.2020原色

class TransferFunction

预定义的传输函数或伽马曲线。

常量

描述

QColorSpace.TransferFunction.Custom

自定义或空传输函数

QColorSpace.TransferFunction.Linear

线性传输函数

QColorSpace.TransferFunction.Gamma

基于gamma()值的实际伽马曲线的传输函数

QColorSpace.TransferFunction.SRgb

sRGB传输函数,由线性和伽马部分组成

QColorSpace.TransferFunction.ProPhotoRgb

ProPhoto RGB 传输函数,由线性和伽马部分组成

QColorSpace.TransferFunction.Bt2020

BT.2020传输函数,由线性和伽马部分组成

QColorSpace.TransferFunction.St2084

SMPTE ST 2084 传输函数,也称为感知量化器(PQ)。

QColorSpace.TransferFunction.Hlg

混合对数伽马传递函数。

class TransformModel

定义用于色彩空间转换的处理模型。

常量

描述

QColorSpace.TransformModel.ThreeComponentMatrix

转换由一个从原色计算的矩阵和每个颜色通道的一组传递函数组成。这非常快,并且所有预定义的颜色空间都使用它。这种形式的任何颜色空间都是可逆的,并且始终是有效的源和目标。

QColorSpace.TransformModel.ElementListProcessing

转换是一个或两个处理元素列表,可以执行许多操作,每个列表仅处理到连接颜色空间或从连接颜色空间处理。这非常灵活,但相当慢,并且只能通过读取ICC配置文件来设置(参见fromIccProfile())。由于两个列表是分开的,因此这种形式的颜色空间可以是有效的源,但不一定是有效的目标。当更改此类型颜色空间的原色或传递函数时,它将重置为空的三分量矩阵形式。

在版本6.8中添加。

class ColorModel

定义颜色空间数据使用的颜色模型。

常量

描述

QColorSpace.ColorModel.Undefined

无颜色模型

QColorSpace.ColorModel.Rgb

一种包含红色、绿色和蓝色的RGB颜色模型。适用于RGB和灰度数据。

QColorSpace.ColorModel.Gray

灰度颜色模型。只能应用于灰度数据。

QColorSpace.ColorModel.Cmyk

只能表示使用青色、品红色、黄色和黑色定义的颜色数据。实际上仅适用于QImage::Format_CMYK32。注意Cmyk颜色空间将进行ElementListProcessing

在版本6.8中添加。

__init__()

创建一个新的颜色空间对象,该对象表示未定义且无效的颜色空间。

__init__(namedColorSpace)
Parameters:

namedColorSpaceNamedColorSpace

创建一个新的颜色空间对象,该对象表示一个namedColorSpace

__init__(colorSpace)
Parameters:

colorSpaceQColorSpace

创建一个新的颜色空间对象,该对象表示一个namedColorSpace

__init__(primaries, transferFunctionTable)
Parameters:
  • primariesPrimaries

  • transferFunctionTable – .uint16_t 列表

使用由transferFunctionTable描述的自定义传递函数,创建一个具有原色gamut的自定义色彩空间。

表格应至少包含2个值,并且包含一个从0到65535的单调递增的值列表。

__init__(primaries, gamma)
Parameters:
  • primariesPrimaries

  • gamma – 浮点数

使用原色primaries创建一个自定义颜色空间,并使用gamma的伽马传递函数。

__init__(whitePoint, transferFunctionTable)
Parameters:
  • whitePointQPointF

  • transferFunctionTable – .uint16_t 列表

创建一个自定义的灰度色彩空间,其白点为whitePoint,并使用由transferFunctionTable描述的自定义传输函数。

__init__(primaries, transferFunction[, gamma=0.0f])
Parameters:

使用原色primaries创建一个自定义颜色空间,使用传递函数transferFunction,并可选择gamma

__init__(whitePoint, transferFunction[, gamma=0.0f])
Parameters:

创建一个自定义的灰度色彩空间,使用白点 whitePoint,传输函数 transferFunction 和可选的 gamma

__init__(whitePoint, redPoint, greenPoint, bluePoint, transferFunctionTable)
Parameters:

创建一个自定义颜色空间,其原色基于主要颜色的色度whitePointredPointgreenPointbluePoint,并使用由transferFunctionTable描述的自定义传递函数。

__init__(whitePoint, redPoint, greenPoint, bluePoint, transferFunction[, gamma=0.0f])
Parameters:

创建一个自定义色彩空间,其原色基于主色的色度whitePointredPointgreenPointbluePoint,并使用传递函数transferFunction和可选的gamma

__init__(whitePoint, redPoint, greenPoint, bluePoint, redTransferFunctionTable, greenTransferFunctionTable, blueTransferFunctionTable)
Parameters:
  • whitePointQPointF

  • redPointQPointF

  • greenPointQPointF

  • bluePointQPointF

  • redTransferFunctionTable – .uint16_t 列表

  • greenTransferFunctionTable – .uint16_t 列表

  • blueTransferFunctionTable – .uint16_t 列表

创建一个自定义颜色空间,其原色基于主要颜色的色度whitePointredPointgreenPointbluePoint,并使用由redTransferFunctionTablegreenTransferFunctionTableblueTransferFunctionTable描述的自定义传递函数。

colorModel()
Return type:

ColorModel

返回此颜色空间可以表示的颜色模型

description()
Return type:

字符串

返回名称或简短描述。如果未在setDescription()中提供描述,则如果配置文件未修改,则返回配置文件的原始名称;如果配置文件已被识别为已知颜色空间,则返回猜测的名称;否则返回空字符串。

另请参阅

setDescription()

static fromIccProfile(iccProfile)
Parameters:

iccProfileQByteArray

Return type:

QColorSpace

从ICC配置文件iccProfile创建一个QColorSpace

注意

并非所有ICC配置文件都受支持。QColorSpace 仅支持RGB或灰度ICC配置文件。

如果不支持ICC配置文件,将返回一个无效的QColorSpace,您仍然可以使用iccProfile()读取原始的ICC配置文件。

另请参阅

iccProfile()

gamma()
Return type:

浮点数

返回具有TransferFunction::Gamma的色彩空间的伽马值,对于其他预定义的色彩空间返回一个近似的伽马值,如果不知道近似的伽马值则返回0.0。

另请参阅

transferFunction()

iccProfile()
Return type:

QByteArray

返回表示颜色空间的ICC配置文件。

如果颜色空间是从ICC配置文件生成的,则返回该配置文件,否则生成一个。

注意

即使无效的颜色空间也可能返回ICC配置文件,如果它们是从一个生成的,以允许应用程序自己实现更广泛的支持。

另请参阅

fromIccProfile()

isValid()
Return type:

布尔

如果颜色空间有效,则返回true。对于具有TransformModel::ThreeComponentMatrix的颜色空间,这意味着原色和传递函数都已设置,并暗示isValidTarget()。对于具有TransformModel::ElementListProcessing的颜色空间,这意味着它具有有效的源变换,要检查它是否也是有效的目标颜色空间,请使用isValidTarget()

另请参阅

isValidTarget()

isValidTarget()
Return type:

布尔

如果颜色空间是有效的目标颜色空间,则返回 true

__ne__(colorSpace2)
Parameters:

colorSpace2QColorSpace

Return type:

布尔

如果颜色空间 colorSpace1 不等于颜色空间 colorSpace2,则返回 true;否则返回 false

__eq__(colorSpace2)
Parameters:

colorSpace2QColorSpace

Return type:

布尔

如果颜色空间 colorSpace1 等于颜色空间 colorSpace2,则返回 true;否则返回 false

primaries()
Return type:

初选

返回颜色空间的预定义原色,如果与任何预定义原色不匹配,则返回primaries::Custom

另请参阅

setPrimaries()

setDescription(description)
Parameters:

描述 – str

将颜色空间的名称或简短描述设置为description

如果设置为空,description() 将返回原始或猜测的描述。

另请参阅

description()

setPrimaries(primariesId)
Parameters:

primariesIdPrimaries

将原色设置为primariesId集合中的原色。

另请参阅

primaries()

setPrimaries(whitePoint, redPoint, greenPoint, bluePoint)
Parameters:

将原色设置为whitePointredPointgreenPointbluePoint的色度。

另请参阅

primaries()

setTransferFunction(transferFunctionTable)
Parameters:

transferFunctionTable – .uint16_t 列表

将传输函数设置为transferFunctionTable

setTransferFunction(transferFunction[, gamma=0.0f])
Parameters:

将传输函数设置为 transferFunctiongamma

setTransferFunctions(redTransferFunctionTable, greenTransferFunctionTable, blueTransferFunctionTable)
Parameters:
  • redTransferFunctionTable – .uint16_t 列表

  • greenTransferFunctionTable – .uint16_t 列表

  • blueTransferFunctionTable – .uint16_t 列表

将传输函数设置为redTransferFunctionTablegreenTransferFunctionTableblueTransferFunctionTable

setWhitePoint(whitePoint)
Parameters:

whitePointQPointF

设置用于此色彩空间的白点为 whitePoint

另请参阅

whitePoint()

swap(colorSpace)
Parameters:

colorSpaceQColorSpace

交换颜色空间 other 与此颜色空间。此操作非常快速且永远不会失败。

transferFunction()
Return type:

TransferFunction

返回颜色空间的预定义传输函数,如果它与任何预定义函数不匹配,则返回TransferFunction::Custom

transformModel()
Return type:

TransformModel

返回用于此颜色空间的变换处理模型。

transformationToColorSpace(colorspace)
Parameters:

colorspaceQColorSpace

Return type:

QColorTransform

生成并返回从此颜色空间到colorspace的颜色空间转换。

whitePoint()
Return type:

QPointF

返回用于此色彩空间的白点。如果未定义,则返回一个空的QPointF。

另请参阅

setWhitePoint()

withTransferFunction(transferFunctionTable)
Parameters:

transferFunctionTable – .uint16_t 列表

Return type:

QColorSpace

返回此颜色空间的副本,但使用由transferFunctionTable描述的传递函数。

withTransferFunction(transferFunction[, gamma=0.0f])
Parameters:
Return type:

QColorSpace

返回此颜色空间的副本,但使用传递函数 transferFunctiongamma

withTransferFunctions(redTransferFunctionTable, greenTransferFunctionTable, blueTransferFunctionTable)
Parameters:
  • redTransferFunctionTable – .uint16_t 列表

  • greenTransferFunctionTable – .uint16_t 列表

  • blueTransferFunctionTable – .uint16_t 列表

Return type:

QColorSpace

返回此色彩空间的副本,但使用由redTransferFunctionTablegreenTransferFunctionTableblueTransferFunctionTable描述的传输函数。

另请参阅

setTransferFunctions()