Класс QColorSpace
Класс QColorSpace обеспечивает абстракцию цветового пространства. Подробнее...
| Заголовок: | #include <QColorSpace> |
| CMake: | find_package(Qt6 COMPONENTS Gui REQUIRED) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
| qmake: | QT += gui |
| С момента версии: | Qt 5.14 |
Открытые типы
| enum | NamedColorSpace { SRgb, SRgbLinear, AdobeRgb, DisplayP3, ProPhotoRgb } |
| enum class | Primaries { Custom, SRgb, AdobeRgb, DciP3D65, ProPhotoRgb } |
| enum class | TransferFunction { Custom, Linear, Gamma, SRgb, ProPhotoRgb } |
Открытые функции
| 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) | |
| QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, 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) | |
| QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable) | |
| QColorSpace(QColorSpace::Primaries primaries, float gamma) | |
| QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) | |
| QColorSpace(QColorSpace::NamedColorSpace namedColorSpace) | |
| QColorSpace() | |
| QString | description() const |
| float | gamma() const |
| QByteArray | iccProfile() const |
| bool | isValid() const |
| QColorSpace::Primaries | primaries() const |
| 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) |
| void | setTransferFunction(const QList<uint16_t> &transferFunctionTable) |
| 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 |
| QColorSpace | withTransferFunction(const QList<uint16_t> &transferFunctionTable) const |
| 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 обеспечивает доступ к созданию нескольких предопределенных цветовых пространств и может генерировать QColorTransforms для преобразования цветов из одного цветового пространства в другое.
QColorSpace также может представлять цветовые пространства, определенные профилями ICC или встроенными в изображения, которые иначе не соответствуют предопределенным цветовым пространствам.
Цветовое пространство, вообще говоря, можно рассматривать как комбинацию набора основных цветов и передаточной функции. Основные цвета определяют оси цветового пространства, а передаточная функция — как значения отображаются на осях. Основные цвета определяются тремя основными цветами, которые точно представляют, как выглядят красный, зеленый и синий в этом конкретном цветовом пространстве, и белым цветом, который представляет, где и насколько ярким является чистый белый. Диапазон цветов, выразимых основными цветами, называется гаммой, а цветовое пространство, которое может представлять более широкий диапазон цветов, также известно как цветовое пространство с широкой гаммой.
Передаточная функция или гамма-кривая определяет, как кодируется каждый компонент в цветовом пространстве. Они используются, потому что человеческое восприятие не работает линейно, и передаточные функции пытаются гарантировать, что цвета будут казаться равномерно распределенными для человеческого глаза.
Документация по типам членов
enum QColorSpace::NamedColorSpace
Предопределенные цветовые пространства.
| Константа | Значение | Описание |
|---|---|---|
QColorSpace::SRgb |
1 |
Пространство цветов sRGB, в котором Qt работает по умолчанию. Оно является приблизительным представлением того, как работают большинство классических мониторов, и режим, поддерживаемый большинством программного и аппаратного обеспечения. Регистрация ICC для sRGB. |
QColorSpace::SRgbLinear |
2 |
Пространство цветов sRGB с линейной гаммой. Полезно для коррекции гаммы при смешивании. |
QColorSpace::AdobeRgb |
3 |
Пространство цветов Adobe RGB — классическое пространство цветов с широким охватом, использующее гамму 2,2. Регистрация ICC для Adobe RGB (1998) |
QColorSpace::DisplayP3 |
4 |
Пространство цветов, использующее первичные цвета DCI-P3, но с белой точкой и функцией передачи sRGB. Распространён на современных экранах с широким охватом. Регистрация ICC для DCI-P3 |
QColorSpace::ProPhotoRgb |
5 |
Пространство цветов ProPhoto RGB, также известное как ROMM RGB, — пространство цветов с очень широким охватом. Регистрация ICC для ROMM RGB |
enum class QColorSpace::Primaries
Предопределённые наборы первичных цветов.
| Константа | Значение | Описание |
|---|---|---|
QColorSpace::Primaries::Custom |
0 |
Первичные цвета не определены или не соответствуют ни одному предопределённому набору. |
QColorSpace::Primaries::SRgb |
1 |
Первичные цвета sRGB |
QColorSpace::Primaries::AdobeRgb |
2 |
Первичные цвета Adobe RGB |
QColorSpace::Primaries::DciP3D65 |
3 |
Первичные цвета DCI-P3 с белой точкой D65 |
QColorSpace::Primaries::ProPhotoRgb |
4 |
Первичные цвета ProPhoto RGB с белой точкой D50 |
enum class 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, состоящая из линейных и гамма-частей |
Документация по функциям-членам
[since 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)
Создаёт пользовательское пространство цветов с первичными цветами, основанными на цветовых характеристиках основных цветов whitePoint, redPoint, greenPoint и bluePoint, и с пользовательскими функциями передачи, описанными в redTransferFunctionTable, greenTransferFunctionTable и blueTransferFunctionTable.
Эта функция была добавлена в Qt 6.1.
[since 6.1] QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, const QList<uint16_t> &transferFunctionTable)
Создаёт пользовательское пространство цветов с первичными цветами, основанными на цветовых характеристиках основных цветов whitePoint, redPoint, greenPoint и bluePoint, и с пользовательской функцией передачи, описанной в transferFunctionTable.
Эта функция была добавлена в Qt 6.1.
QColorSpace::QColorSpace(const QPointF &whitePoint, const QPointF &redPoint, const QPointF &greenPoint, const QPointF &bluePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
Создаёт пользовательское пространство цветов с первичными цветами, основанными на цветовых характеристиках основных цветов whitePoint, redPoint, greenPoint и bluePoint, с функцией передачи transferFunction и необязательно gamma.
[since 6.1] QColorSpace::QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)
Создаёт пользовательское пространство цветов с первичными цветами gamut, используя пользовательскую функцию передачи, описанную в transferFunctionTable.
Таблица должна содержать как минимум 2 значения и содержать монотонно возрастающий список значений от 0 до 65535.
Эта функция была добавлена в Qt 6.1.
QColorSpace::QColorSpace(QColorSpace::Primaries primaries, float gamma)
Создаёт пользовательское пространство цветов с первичными цветами primaries, используя функцию передачи с гаммой gamma.
QColorSpace::QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
Создаёт пользовательское пространство цветов с первичными цветами primaries, используя функцию передачи transferFunction и необязательно gamma.
QColorSpace::QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)
Создаёт новый объект пространства цветов, представляющий namedColorSpace.
QColorSpace::QColorSpace()
Создаёт новый объект пространства цветов, представляющий неопределённое и недействительное пространство цветов.
[since 6.2] QString QColorSpace::description() const
Возвращает имя или краткое описание. Если описание не было задано в setDescription(), возвращается исходное имя профиля, если профиль не был изменён, предполагаемое имя, если профиль был распознан как известное пространство цветов, в противном случае возвращается пустая строка.
Эта функция была добавлена в Qt 6.2.
См. также setDescription().
[static] QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile)
Создаёт QColorSpace из ICC профиля iccProfile.
Примечание: Не все ICC профили поддерживаются. QColorSpace поддерживает только RGB-XYZ ICC профили, основанные на трёхкомпонентной матрице.
Если ICC профиль не поддерживается, возвращается недействительный QColorSpace, где вы по-прежнему можете прочитать исходный ICC профиль с помощью iccProfile().
См. также iccProfile().
float QColorSpace::gamma() const
Возвращает значение гаммы для пространств цветов с TransferFunction::Gamma, приблизительное значение гаммы для других предопределённых пространств цветов или 0,0, если приблизительная гамма неизвестна.
См. также transferFunction().
QByteArray QColorSpace::iccProfile() const
Возвращает ICC профиль, представляющий пространство цветов.
Если пространство цветов было сгенерировано из ICC профиля, возвращается этот профиль, в противном случае генерируется новый.
END_OF_DOCUMENT_MARKER ```Примечание: Даже некорректные цветовые пространства могут возвращать профиль ICC, если они были сгенерированы из него, чтобы приложения могли реализовать более широкую поддержку самостоятельно.
См. также fromIccProfile().
bool QColorSpace::isValid() const
Возвращает true если цветовое пространство валидно.
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.
См. также withTransferFunction().
[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.
См. также withTransferFunctions().
void QColorSpace::swap(QColorSpace &other)
Меняет цветовое пространство other с текущим. Эта операция очень быстрая и никогда не завершается ошибкой.
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
Возвращает копию текущего цветового пространства, но с функцией передачи transferFunction и gamma.
См. также transferFunction(), gamma() и setTransferFunction().
[since 6.1] QColorSpace QColorSpace::withTransferFunction(const QList<uint16_t> &transferFunctionTable) const
Возвращает копию текущего цветового пространства, но с функцией передачи, описанной в 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().
[since 5.15] QVariant QColorSpace::operator QVariant() const
Возвращает цветовое пространство как QVariant.
Эта функция была добавлена в Qt 5.15.
Связанные нечлены
bool operator!=(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
Возвращает true если colorSpace1 не равно colorSpace2; в противном случае возвращает false
QDataStream &operator<<(QDataStream &stream, const QColorSpace &colorSpace)
Записывает данное colorSpace в заданный stream как профиль ICC.
См. также QColorSpace::iccProfile() и Сериализация типов данных Qt.
bool operator==(const QColorSpace &colorSpace1, const QColorSpace &colorSpace2)
Возвращает true если colorSpace1 равно colorSpace2; в противном случае возвращает false
QDataStream &operator>>(QDataStream &stream, QColorSpace &colorSpace)
Считывает цветовое пространство из заданного stream и сохраняет его в заданном colorSpace.
См. также QColorSpace::fromIccProfile() и Сериализация типов данных Qt.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-6.2/qcolorspace.html