QColorSpace 类

QColorSpace 类提供颜色空间的抽象。 更多...

头文件 #include <QColorSpace>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui

公共类型

枚举NamedColorSpace { SRgb, SRgbLinear, AdobeRgb, DisplayP3, ProPhotoRgb }
枚举类Primaries { Custom, SRgb, AdobeRgb, DciP3D65, ProPhotoRgb }
枚举类TransferFunction { Custom, Linear, Gamma, SRgb, ProPhotoRgb }

公共函数

QColorSpace()
QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)
QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
QColorSpace(QColorSpace::Primaries primaries, float gamma)
(自 6.1) QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)
QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(自 6.1) QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &transferFunctionTable)
(自 6.1) QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
(since 6.2) QStringdescription() const
floatgamma() const
QByteArrayiccProfile() const
boolisValid() const
QColorSpace::Primariesprimaries() const
(since 6.2) voidsetDescription(const QString &description)
voidsetPrimaries(QColorSpace::Primaries primariesId)
voidsetPrimaries(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint)
voidsetTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) voidsetTransferFunction(const QList<uint16_t> &transferFunctionTable)
(since 6.1) voidsetTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
voidswap(QColorSpace &other)
QColorSpace::TransferFunctiontransferFunction() const
QColorTransformtransformationToColorSpace(const QColorSpace &colorspace) const
QColorSpacewithTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const
(since 6.1) QColorSpacewithTransferFunction(const QList<uint16_t> &transferFunctionTable) const
(since 6.1) QColorSpacewithTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const
QVariantoperator QVariant() const

静态公共成员

QColorSpacefromIccProfile(const QByteArray &iccProfile)
booloperator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
QDataStream &operator<<(QDataStream &stream, const QColorSpace &colorSpace)
booloperator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)

详细描述

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

QColorSpace提供创建预定义颜色空间的接口,并可以生成用于将颜色从一个颜色空间转换为另一个颜色空间的QColorTransform。

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

可以说,颜色空间可以被视为一组基本颜色和转换函数的组合。基本颜色定义了颜色空间的轴,转换函数则定义如何将值映射到这些轴上。基本颜色由三种基本颜色组成,这三种颜色代表了这个特定颜色空间中的红、绿、蓝色具体看起来如何,以及一个代表纯白色在哪里和有多亮的白色。基本颜色可以表达的颜色范围称为色域,而可以表示更广阔颜色范围的颜色空间也被称为宽色域颜色空间。

转换函数或伽马曲线决定了颜色空间中每个组件的编码方式。这些函数被使用的原因是人类感知并非线性操作,转换函数试图确保颜色对于人眼来说是均匀分布的。

成员类型文档

enum QColorSpace::NamedColorSpace

预定义的颜色空间。

常量描述
QColorSpace::SRgb1SRgb颜色空间,Qt默认运行的颜色空间。这是大多数经典显示器操作的一种接近的近似,是大多数软件和硬件所支持的模式。 ICC对sRGB的注册
QColorSpace::SRgbLinear2具有线性伽马值的sRGB颜色空间。适用于伽马校正混合。
QColorSpace::AdobeRgb3Adobe RGB颜色空间是一个经典的宽色域颜色空间,使用伽马值为2.2。 Adobe RGB (1998) 的ICC注册
QColorSpace::DisplayP34使用DCI-P3基色的颜色空间,但使用sRGB的白色点和转换函数。在现代宽色域屏幕中很常见。 DCI-P3的ICC注册
QColorSpace::ProPhotoRgb5Pro Photo RGB颜色空间,也称为ROMM RGB,是一个非常宽的色域颜色空间。 ROMM RGB的ICC注册

枚举类QColorSpace::Primaries

预定义的原色集。

常量描述
QColorSpace::Primaries::Custom0原色未定义或与任何预定义的集不匹配。
QColorSpace::Primaries::SRgb1sRGB原色
QColorSpace::Primaries::AdobeRgb2Adobe RGB原色
QColorSpace::Primaries::DciP3D653带有D65白色点的DCI-P3原色
QColorSpace::Primaries::ProPhotoRgb4带有D50白色点的ProPhoto RGB原色

枚举类QColorSpace::TransferFunction

预定义的转换函数或伽马曲线。

常量描述
QColorSpace::TransferFunction::Custom0自定义或空转换函数
QColorSpace::TransferFunction::Linear1线性转换函数
QColorSpace::TransferFunction::Gamma2基于gamma()函数值的真实伽马曲线转换函数
QColorSpace::TransferFunction::SRgb3由线性部分和伽马部分组成的sRGB转换函数
QColorSpace::TransferFunction::ProPhotoRgb4由线性部分和伽马部分组成的ProPhoto RGB转换函数

成员函数说明

[noexcept] QColorSpace::QColorSpace()

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

QColorSpace::QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)

创建一个表示指定名称颜色空间的新的颜色空间对象。

QColorSpace::QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

创建一个具有指定原色、使用指定转换函数以及可选伽马的定制颜色空间。

QColorSpace::QColorSpace(QColorSpace::Primaries primaries, float gamma)

创建一个具有指定原色并使用指定伽马转换函数的定制颜色空间。

[since 6.1] QColorSpace::QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)

创建一个具有指定原色并使用由指定转换函数描述的定制颜色空间。

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

此功能是在Qt 6.1中引入的。

QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

创建一个自定义色彩空间,其原色基于白色、红色、绿色和蓝色原色色彩,并使用传输函数transferFunction和可选的gamma

[自6.1起] QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &transferFunctionTable)

创建一个自定义色彩空间,其原色基于白色、红色、绿色和蓝色原色色彩,并使用由transferFunctionTable描述的自定义传输函数。

此功能是在Qt 6.1中引入的。

[自6.1起] QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)

创建一个自定义色彩空间,其原色基于白色、红色、绿色和蓝色原色色彩,并使用由redTransferFunctionTablegreenTransferFunctionTableblueTransferFunctionTable描述的自定义传输函数。

此功能是在Qt 6.1中引入的。

[不抛出异常,自6.2起] QString QColorSpace::description() const

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

此功能是在Qt 6.2中引入的。

另请参阅setDescription()。

[静态] QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile)

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

注意:并非所有ICC配置文件都受支持。QColorSpace仅支持RGB-XYZ基于矩阵的三组件ICC配置文件。

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

另请参阅iccProfile().

[noexcept] float QColorSpace::gamma() const

返回具有 TransferFunction::Gamma 的颜色空间的伽玛值、其他预定义颜色空间的近似伽玛值,或者如果不知道近似伽玛值,则返回 0.0。

另请参阅transferFunction().

QByteArray QColorSpace::iccProfile() const

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

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

注意:即使无效的颜色空间也可能返回ICC配置文件,因为它们可能从其中生成,以便允许应用程序自行实现更广泛的支持。

另请参阅fromIccProfile().

[noexcept] bool QColorSpace::isValid() const

如果颜色空间有效,则返回 true

[noexcept] QColorSpace::Primaries QColorSpace::primaries() const

返回颜色空间的预定义主色,或者如果它与其中的任何一个都不匹配,则返回 primaries::Custom

另请参阅setPrimaries().

[since 6.2] void QColorSpace::setDescription(const QString &description)

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

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

此功能是在Qt 6.2中引入的。

另请参阅description().

void QColorSpace::setPrimaries(QColorSpace::Primaries primariesId)

将主色设置为 primariesId 集中的主色。

另请参阅primaries().

void QColorSpace::setPrimaries(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint)

将主色设置为 whitePointredPointgreenPointbluePoint 的色度。

另请参阅primaries().

void QColorSpace::setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

将传输函数设置为 transferFunctiongamma

另请参阅transferFunction()、gamma() 和 withTransferFunction().

[since 6.1] void QColorSpace::setTransferFunction(const QList<uint16_t> &transferFunctionTable)

将转换函数设置为transferFunctionTable

此功能是在Qt 6.1中引入的。

另见 withTransferFunction

[since 6.1] void QColorSpace::setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)

将转换函数设置为redTransferFunctionTablegreenTransferFunctionTableblueTransferFunctionTable

此功能是在Qt 6.1中引入的。

另见 withTransferFunctions

[noexcept] void QColorSpace::swap(QColorSpace &other)

与当前颜色空间交换颜色空间other。此操作非常快,绝不会失败。

[noexcept] QColorSpace::TransferFunction QColorSpace::transferFunction() const

返回颜色空间的预定义转换函数或如果不符合任何一项则返回TransferFunction::Custom

另见 gammasetTransferFunctionwithTransferFunction

QColorTransform QColorSpace::transformationToColorSpace(const QColorSpace &colorspace) const

从当前颜色空间生成并返回一个到colorspace的颜色空间转换。

QColorSpace QColorSpace::withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const

返回一个color space的副本,除了使用转换函数transferFunctiongamma

另见 transferFunctiongammasetTransferFunction

[since 6.1] QColorSpace QColorSpace::withTransferFunction(const QList<uint16_t> &transferFunctionTable) const

返回一个color space的副本,除了使用由transferFunctionTable描述的转换函数。

此功能是在Qt 6.1中引入的。

另见 transferFunctionsetTransferFunction

[since 6.1] QColorSpace QColorSpace::withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const

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

此功能是在Qt 6.1中引入的。

另请参阅 setTransferFunctions

QVariant QColorSpace::operator QVariant() const

QVariant 形式返回色彩空间。

相关非成员函数

bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)

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

QDataStream &operator<<(QDataStream &stream, const QColorSpace &colorSpace)

将给定的 colorSpace 以 ICC 配置文件格式写入给定的 stream

另请参阅 QColorSpace::iccProfile() 和 序列化 Qt 数据类型

bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)

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

QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)

从给定的 stream 读取色彩空间并将其存储在给定的 colorSpace 中。

另请参阅 QColorSpace::fromIccProfile() 和 序列化 Qt 数据类型

© 2024 The Qt Company Ltd. 本文档中的贡献内容为各自的拥有者的版权。本文档按 Free Software Foundation 发布的 GNU 自由文档许可协议版本 1.3 的条款授权。Qt 及相关标志是芬兰及其它国家和地区 The Qt Company Ltd 的商标。所有其他商标均为其各自拥有者的财产。