QColorSpace 类
QColorSpace 类提供颜色空间的抽象。 更多...
头文件 | #include <QColorSpace> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
- 所有成员的列表,包括继承的成员
- QColorSpace 是 绘画类 的一部分。
公共类型
枚举 | 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) QString | description() const |
float | gamma() const |
QByteArray | iccProfile() const |
bool | isValid() const |
QColorSpace::Primaries | primaries() const |
(since 6.2) void | setDescription(const QString &description) |
void | setPrimaries(QColorSpace::Primaries primariesId) |
void | setPrimaries(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint) |
void | setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) |
(since 6.1) void | setTransferFunction(const QList<uint16_t> &transferFunctionTable) |
(since 6.1) void | setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) |
void | swap(QColorSpace &other) |
QColorSpace::TransferFunction | transferFunction() const |
QColorTransform | transformationToColorSpace(const QColorSpace &colorspace) const |
QColorSpace | withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const |
(since 6.1) QColorSpace | withTransferFunction(const QList<uint16_t> &transferFunctionTable) const |
(since 6.1) QColorSpace | withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const |
QVariant | operator QVariant() const |
静态公共成员
QColorSpace | fromIccProfile(const QByteArray &iccProfile) |
相关非成员
bool | operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2) |
QDataStream & | operator<<(QDataStream &stream, const QColorSpace &colorSpace) |
bool | operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2) |
QDataStream & | operator>>(QDataStream &stream, QColorSpace &colorSpace) |
详细描述
颜色值可以根据不同的方式解释,根据解释可以存在于不同的空间中。我们称之为颜色空间。
QColorSpace提供创建预定义颜色空间的接口,并可以生成用于将颜色从一个颜色空间转换为另一个颜色空间的QColorTransform。
QColorSpace还可以表示由ICC配置文件定义或在图像中嵌入的颜色空间,这些颜色空间不符合预定义的颜色空间。
可以说,颜色空间可以被视为一组基本颜色和转换函数的组合。基本颜色定义了颜色空间的轴,转换函数则定义如何将值映射到这些轴上。基本颜色由三种基本颜色组成,这三种颜色代表了这个特定颜色空间中的红、绿、蓝色具体看起来如何,以及一个代表纯白色在哪里和有多亮的白色。基本颜色可以表达的颜色范围称为色域,而可以表示更广阔颜色范围的颜色空间也被称为宽色域颜色空间。
转换函数或伽马曲线决定了颜色空间中每个组件的编码方式。这些函数被使用的原因是人类感知并非线性操作,转换函数试图确保颜色对于人眼来说是均匀分布的。
成员类型文档
enum QColorSpace::NamedColorSpace
预定义的颜色空间。
常量 | 值 | 描述 |
---|---|---|
QColorSpace::SRgb | 1 | SRgb颜色空间,Qt默认运行的颜色空间。这是大多数经典显示器操作的一种接近的近似,是大多数软件和硬件所支持的模式。 ICC对sRGB的注册。 |
QColorSpace::SRgbLinear | 2 | 具有线性伽马值的sRGB颜色空间。适用于伽马校正混合。 |
QColorSpace::AdobeRgb | 3 | Adobe RGB颜色空间是一个经典的宽色域颜色空间,使用伽马值为2.2。 Adobe RGB (1998) 的ICC注册 |
QColorSpace::DisplayP3 | 4 | 使用DCI-P3基色的颜色空间,但使用sRGB的白色点和转换函数。在现代宽色域屏幕中很常见。 DCI-P3的ICC注册 |
QColorSpace::ProPhotoRgb | 5 | Pro Photo RGB颜色空间,也称为ROMM RGB,是一个非常宽的色域颜色空间。 ROMM RGB的ICC注册 |
枚举类QColorSpace::Primaries
预定义的原色集。
常量 | 值 | 描述 |
---|---|---|
QColorSpace::Primaries::Custom | 0 | 原色未定义或与任何预定义的集不匹配。 |
QColorSpace::Primaries::SRgb | 1 | sRGB原色 |
QColorSpace::Primaries::AdobeRgb | 2 | Adobe RGB原色 |
QColorSpace::Primaries::DciP3D65 | 3 | 带有D65白色点的DCI-P3原色 |
QColorSpace::Primaries::ProPhotoRgb | 4 | 带有D50白色点的ProPhoto RGB原色 |
枚举类QColorSpace::TransferFunction
预定义的转换函数或伽马曲线。
常量 | 值 | 描述 |
---|---|---|
QColorSpace::TransferFunction::Custom | 0 | 自定义或空转换函数 |
QColorSpace::TransferFunction::Linear | 1 | 线性转换函数 |
QColorSpace::TransferFunction::Gamma | 2 | 基于gamma()函数值的真实伽马曲线转换函数 |
QColorSpace::TransferFunction::SRgb | 3 | 由线性部分和伽马部分组成的sRGB转换函数 |
QColorSpace::TransferFunction::ProPhotoRgb | 4 | 由线性部分和伽马部分组成的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)
创建一个自定义色彩空间,其原色基于白色、红色、绿色和蓝色原色色彩,并使用由redTransferFunctionTable、greenTransferFunctionTable和blueTransferFunctionTable描述的自定义传输函数。
此功能是在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)
将主色设置为 whitePoint、redPoint、greenPoint 和 bluePoint 的色度。
另请参阅primaries().
void QColorSpace::setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
将传输函数设置为 transferFunction 和 gamma。
另请参阅transferFunction()、gamma() 和 withTransferFunction().
[since 6.1]
void QColorSpace::setTransferFunction(const QList<uint16_t> &transferFunctionTable)
将转换函数设置为transferFunctionTable。
此功能是在Qt 6.1中引入的。
[since 6.1]
void QColorSpace::setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
将转换函数设置为redTransferFunctionTable、greenTransferFunctionTable和blueTransferFunctionTable。
此功能是在Qt 6.1中引入的。
[noexcept]
void QColorSpace::swap(QColorSpace &other)
与当前颜色空间交换颜色空间other。此操作非常快,绝不会失败。
[noexcept]
QColorSpace::TransferFunction QColorSpace::transferFunction() const
返回颜色空间的预定义转换函数或如果不符合任何一项则返回TransferFunction::Custom
。
另见 gamma、setTransferFunction和withTransferFunction。
QColorTransform QColorSpace::transformationToColorSpace(const QColorSpace &colorspace) const
从当前颜色空间生成并返回一个到colorspace的颜色空间转换。
QColorSpace QColorSpace::withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const
返回一个color space的副本,除了使用转换函数transferFunction和gamma。
另见 transferFunction、gamma和setTransferFunction。
[since 6.1]
QColorSpace QColorSpace::withTransferFunction(const QList<uint16_t> &transferFunctionTable) const
返回一个color space的副本,除了使用由transferFunctionTable描述的转换函数。
此功能是在Qt 6.1中引入的。
另见 transferFunction和setTransferFunction。
[since 6.1]
QColorSpace QColorSpace::withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const
返回此色彩空间的副本,但使用由 redTransferFunctionTable、greenTransferFunctionTable 和 blueTransferFunctionTable 描述的传输函数。
此功能是在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 的商标。所有其他商标均为其各自拥有者的财产。