En esta página

QColorSpace Class

La clase QColorSpace proporciona una abstracción del espacio de color. Más...

Cabecera: #include <QColorSpace>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui

Tipos Públicos

(since 6.9) struct PrimaryPoints
(since 6.8) enum class ColorModel { Undefined, Rgb, Gray, Cmyk }
enum NamedColorSpace { SRgb, SRgbLinear, AdobeRgb, DisplayP3, ProPhotoRgb, …, Bt2100Hlg }
enum class Primaries { Custom, SRgb, AdobeRgb, DciP3D65, ProPhotoRgb, Bt2020 }
enum class TransferFunction { Custom, Linear, Gamma, SRgb, ProPhotoRgb, …, Hlg }
(since 6.8) enum class TransformModel { ThreeComponentMatrix, ElementListProcessing }

Funciones Públicas

QColorSpace()
QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)
(since 6.1) QColorSpace(QColorSpace::Primaries gamut, const QList<uint16_t> &transferFunctionTable)
QColorSpace(QColorSpace::Primaries primaries, float gamma)
(since 6.8) QColorSpace(QPointF whitePoint, const QList<uint16_t> &transferFunctionTable)
QColorSpace(QColorSpace::Primaries primaries, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.8) QColorSpace(QPointF whitePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.9) QColorSpace(const QColorSpace::PrimaryPoints &primaryPoints, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) 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)
(since 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.8) QColorSpace::ColorModel colorModel() const
(since 6.2) QString description() const
float gamma() const
QByteArray iccProfile() const
bool isValid() const
(since 6.8) bool isValidTarget() const
QColorSpace::Primaries primaries() const
(since 6.9) QColorSpace::PrimaryPoints primaryPoints() 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)
(since 6.9) void setPrimaryPoints(const QColorSpace::PrimaryPoints &primaryPoints)
(since 6.1) void setTransferFunction(const QList<uint16_t> &transferFunctionTable)
void setTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)
(since 6.1) void setTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable)
(since 6.8) void setWhitePoint(QPointF whitePoint)
void swap(QColorSpace &other)
QColorSpace::TransferFunction transferFunction() const
(since 6.8) QColorSpace::TransformModel transformModel() const
QColorTransform transformationToColorSpace(const QColorSpace &colorspace) const
(since 6.8) QPointF whitePoint() const
(since 6.1) QColorSpace withTransferFunction(const QList<uint16_t> &transferFunctionTable) const
QColorSpace withTransferFunction(QColorSpace::TransferFunction transferFunction, float gamma = 0.0f) const
(since 6.1) QColorSpace withTransferFunctions(const QList<uint16_t> &redTransferFunctionTable, const QList<uint16_t> &greenTransferFunctionTable, const QList<uint16_t> &blueTransferFunctionTable) const
operator QVariant() const

Miembros Públicos Estáticos

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)

Descripción Detallada

Los valores de color pueden ser interpretados de diferentes maneras, y basados en la interpretación pueden vivir en diferentes espacios. A esto lo llamamos espacios de color.

QColorSpace proporciona acceso a la creación de varios espacios de color predefinidos y puede generar QColorTransforms para convertir colores de un espacio de color a otro.

QColorSpace también puede representar espacios de color definidos por perfiles ICC o incrustados en imágenes, que de otro modo no se ajustan a los espacios de color predefinidos.

En términos generales, un espacio de color puede concebirse como una combinación de un conjunto de colores primarios y una función de transferencia. Los primarios definen los ejes del espacio de color, y la función de transferencia cómo se mapean los valores en los ejes. Para los espacios de color ColorModel::Rgb, los primarios se definen mediante tres colores primarios que representan exactamente cómo se ven el rojo, el verde y el azul en este espacio de color concreto, y un color blanco que representa dónde y cómo de brillante es el blanco puro. Para los espacios de color en escala de grises, sólo se necesita un blanco primario. La gama de colores expresable por los colores primarios se denomina gama, y un espacio de color que puede representar una gama más amplia de colores también se conoce como espacio de color de gama amplia.

La función de transferencia o curva gamma determina cómo se codifica cada componente del espacio de color. Se utilizan porque la percepción humana no funciona linealmente, y las funciones de transferencia intentan garantizar que los colores parezcan uniformemente espaciados a los ojos humanos.

Documentación de los tipos de miembros

[since 6.8] enum class QColorSpace::ColorModel

Define el modelo de color utilizado por los datos del espacio de color.

ConstanteValorDescripción
QColorSpace::ColorModel::Undefined0Sin modelo de color
QColorSpace::ColorModel::Rgb1Un modelo de color RGB con colores rojo, verde y azul. Puede aplicarse a datos RGB y de escala de grises.
QColorSpace::ColorModel::Gray2Un modelo de color de escala de grises. Sólo puede aplicarse a datos en escala de grises.
QColorSpace::ColorModel::Cmyk3Sólo puede representar datos de color definidos con colores cian, magenta, amarillo y negro. En efecto sólo QImage::Format_CMYK32. Nota Los espacios de color Cmyk serán TransformModel::ElementListProcessing.

Este enum se introdujo en Qt 6.8.

enum QColorSpace::NamedColorSpace

Espacios de color predefinidos.

ConstanteValorDescripción
QColorSpace::SRgb1El espacio de color sRGB, con el que Qt opera por defecto. Es una aproximación cercana a cómo funcionan la mayoría de los monitores clásicos, y un modo soportado por la mayoría del software y hardware. Registro ICC de sRGB.
QColorSpace::SRgbLinear2El espacio de color sRGB con gamma lineal. Útil para mezclas con corrección gamma.
QColorSpace::AdobeRgb3El espacio de color Adobe RGB es un espacio de color clásico de gamma amplia, que utiliza una gamma de 2,2. Registro ICC de Adobe RGB (1998)
QColorSpace::DisplayP34Espacio de color que utiliza los primarios de DCI-P3, pero con el punto blanco y la función de transferencia de sRGB. Común en las pantallas modernas de pantalla ancha. Registro ICC de DCI-P3
QColorSpace::ProPhotoRgb5El espacio de color Pro Photo RGB, también conocido como ROMM RGB, es un espacio de color de gama muy amplia. Registro ICC de ROMM RGB
QColorSpace::Bt2020 (since Qt 6.8)6BT.2020, también conocido como Rec.2020 es un espacio de color básico de los televisores HDR. Registro ICC de BT.2020
QColorSpace::Bt2100Pq (since Qt 6.8)7BT.2100(PQ), también conocido como Rec.2100 o HDR10 es una codificación HDR con los mismos primarios que Bt2020 pero utilizando la función de transferencia Perceptual Quantizer. Registro ICC de BT.2100
QColorSpace::Bt2100Hlg (since Qt 6.8)8BT.2100 (HLG) es una codificación HDR con los mismos primarios que Bt2020 pero que utiliza la función de transferencia Log-Gamma híbrida.

enum class QColorSpace::Primaries

Conjuntos predefinidos de colores primarios.

ConstanteValorDescripción
QColorSpace::Primaries::Custom0Los primarios no están definidos o no coinciden con ningún conjunto predefinido.
QColorSpace::Primaries::SRgb1Los primarios sRGB
QColorSpace::Primaries::AdobeRgb2Los primarios Adobe RGB
QColorSpace::Primaries::DciP3D653Los primarios DCI-P3 con el punto blanco D65
QColorSpace::Primaries::ProPhotoRgb4Las primarias ProPhoto RGB con el punto blanco D50
QColorSpace::Primaries::Bt2020 (since Qt 6.8)5Las primarias BT.2020 con un punto blanco D65

enum class QColorSpace::TransferFunction

Funciones de transferencia o curvas gamma predefinidas.

ConstanteValorDescripción
QColorSpace::TransferFunction::Custom0La función de transferencia personalizada o nula
QColorSpace::TransferFunction::Linear1Las funciones de transferencia lineales
QColorSpace::TransferFunction::Gamma2Una función de transferencia que es una curva gamma real basada en el valor de gamma()
QColorSpace::TransferFunction::SRgb3La función de transferencia sRGB, compuesta de partes lineales y gamma
QColorSpace::TransferFunction::ProPhotoRgb4La función de transferencia ProPhoto RGB, compuesta de partes lineales y gamma
QColorSpace::TransferFunction::Bt2020 (since Qt 6.8)5La función de transferencia BT.2020, compuesta de partes lineales y gamma
QColorSpace::TransferFunction::St2084 (since Qt 6.8)6La función de transferencia SMPTE ST 2084, también conocida como cuantificador perceptual (PQ).
QColorSpace::TransferFunction::Hlg (since Qt 6.8)7La función de transferencia híbrida log-gamma.

[since 6.8] enum class QColorSpace::TransformModel

Define el modelo de procesamiento utilizado para las transformaciones del espacio de color.

ConstanteValorDescripción
QColorSpace::TransformModel::ThreeComponentMatrix0La transformación consiste en una matriz calculada a partir de primarios y un conjunto de funciones de transferencia para cada canal de color. Es muy rápida y la utilizan todos los espacios de color predefinidos. Cualquier espacio de color de esta forma es reversible y siempre son válidas tanto las fuentes como los destinos.
QColorSpace::TransformModel::ElementListProcessing1Las transformaciones son una o dos listas de elementos de procesamiento que pueden hacer muchas cosas, cada lista sólo procesa hacia el espacio de color de conexión o desde él. Esto es muy flexible, pero bastante lento, y sólo puede establecerse leyendo perfiles ICC (Ver fromIccProfile()). Dado que las dos listas están separadas, un espacio de color de esta forma puede ser una fuente válida, pero no necesariamente también un destino válido. Cuando se cambian los primarios o la función de transferencia en un espacio de color de este tipo, se restablecerá a un formulario ThreeComponentMatrix vacío.

Este enum se introdujo en Qt 6.8.

Documentación de la Función Miembro

[constexpr noexcept] QColorSpace::QColorSpace()

Crea un nuevo objeto de espacio de color que representa un espacio de color indefinido e inválido.

QColorSpace::QColorSpace(QColorSpace::NamedColorSpace namedColorSpace)

Crea un nuevo objeto de espacio de color que representa un namedColorSpace.

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

Crea un espacio de color personalizado con los primarios gamut, utilizando una función de transferencia personalizada descrita por transferFunctionTable.

La tabla debe contener al menos 2 valores, y contener una lista monotónicamente creciente de valores de 0 a 65535.

Esta función se introdujo en Qt 6.1.

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

Crea un espacio de color personalizado con los primarios primaries, utilizando una función de transferencia gamma de gamma.

[explicit, since 6.8] QColorSpace::QColorSpace(QPointF whitePoint, const QList<uint16_t> &transferFunctionTable)

Crea un espacio de color en escala de grises personalizado con el punto blanco whitePoint, y utilizando la función de transferencia personalizada descrita por transferFunctionTable.

Esta función se introdujo en Qt 6.8.

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

Crea un espacio de color personalizado con los primarios primaries, utilizando la función de transferencia transferFunction y opcionalmente gamma.

[explicit, since 6.8] QColorSpace::QColorSpace(QPointF whitePoint, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

Crea un espacio de color en escala de grises personalizado con el punto blanco whitePoint, utilizando la función de transferencia transferFunction y opcionalmente gamma.

Esta función se introdujo en Qt 6.8.

[since 6.9] QColorSpace::QColorSpace(const QColorSpace::PrimaryPoints &primaryPoints, QColorSpace::TransferFunction transferFunction, float gamma = 0.0f)

Crea un espacio de color personalizado con primarios basados en las cromaticidades de los colores primarios primaryPoints, y utilizando la función de transferencia transferFunction y opcionalmente gamma.

Esta función se introdujo en Qt 6.9.

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

Crea un espacio de color personalizado con primarios basados en las cromaticidades de los colores primarios whitePoint, redPoint, greenPoint y bluePoint, y utilizando la función de transferencia personalizada descrita por transferFunctionTable.

Esta función se introdujo en Qt 6.1.

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

Crea un espacio de color personalizado con primarios basados en las cromaticidades de los colores primarios whitePoint, redPoint, greenPoint y bluePoint, y utilizando la función de transferencia transferFunction y opcionalmente gamma.

[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)

Crea un espacio de color personalizado con primarios basados en las cromaticidades de los colores primarios whitePoint, redPoint, greenPoint y bluePoint, y utilizando las funciones de transferencia personalizadas descritas por redTransferFunctionTable, greenTransferFunctionTable, y blueTransferFunctionTable.

Esta función se introdujo en Qt 6.1.

[noexcept, since 6.8] QColorSpace::ColorModel QColorSpace::colorModel() const

Devuelve el modelo de color que este espacio de color puede representar

Esta función se introdujo en Qt 6.8.

[noexcept, since 6.2] QString QColorSpace::description() const

Devuelve el nombre o una breve descripción. Si no se ha dado una descripción en setDescription(), se devuelve el nombre original del perfil si el perfil no ha sido modificado, se devuelve un nombre adivinado si el perfil ha sido reconocido como un espacio de color conocido, en caso contrario se devuelve una cadena vacía.

Esta función se introdujo en Qt 6.2.

Véase también setDescription().

[static] QColorSpace QColorSpace::fromIccProfile(const QByteArray &iccProfile)

Crea un QColorSpace a partir del perfil ICC iccProfile.

Nota: No todos los perfiles ICC están soportados. QColorSpace sólo soporta perfiles ICC RGB o Gris.

Si el perfil ICC no está soportado se devuelve un QColorSpace inválido donde todavía se puede leer el perfil ICC original usando iccProfile().

Véase también iccProfile().

[noexcept] float QColorSpace::gamma() const

Devuelve el valor gamma de los espacios de color con TransferFunction::Gamma, un valor gamma aproximado para otros espacios de color predefinidos, o 0,0 si no se conoce ningún valor gamma aproximado.

Véase también transferFunction().

QByteArray QColorSpace::iccProfile() const

Devuelve un perfil ICC que representa el espacio de color.

Si el espacio de color se generó a partir de un perfil ICC, se devuelve ese perfil, en caso contrario se genera uno.

Nota: Incluso los espacios de color no válidos pueden devolver el perfil ICC si se generaron a partir de uno, para permitir que las aplicaciones implementen por sí mismas un soporte más amplio.

Véase también fromIccProfile().

[noexcept] bool QColorSpace::isValid() const

Devuelve true si el espacio de color es válido. Para un espacio de color con TransformModel::ThreeComponentMatrix significa que tanto los primarios como las funciones de transferencia están establecidos, e implica isValidTarget(). Para un espacio de color con TransformModel::ElementListProcessing significa que tiene una transformada de origen válida, para comprobar si también es un espacio de color de destino válido utilice isValidTarget().

Véase también isValidTarget().

[noexcept, since 6.8] bool QColorSpace::isValidTarget() const

Devuelve true si el espacio de color es un espacio de color de destino válido.

Esta función se introdujo en Qt 6.8.

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

Devuelve los primarios predefinidos del espacio de color o primaries::Custom si no coincide con ninguno de ellos.

Véase también setPrimaries().

[since 6.9] QColorSpace::PrimaryPoints QColorSpace::primaryPoints() const

Devuelve las cromaticidades primarias, si no están definidas, devuelve puntos nulos.

Esta función se introdujo en Qt 6.9.

Véase también primaries() y setPrimaryPoints().

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

Establece el nombre o la descripción breve del espacio de color en description.

Si se deja vacío description() devolverá las descripciones originales o supuestas.

Esta función se introdujo en Qt 6.2.

Véase también description().

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

Establece los primarios a los del conjunto primariesId.

Véase también primaries().

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

Establece los primarios con las cromaticidades de whitePoint, redPoint, greenPoint y bluePoint.

Véase también primaries() y setPrimaryPoints().

[since 6.9] void QColorSpace::setPrimaryPoints(const QColorSpace::PrimaryPoints &primaryPoints)

Establece todos los primarios con las cromaticidades de primaryPoints.

Esta función se introdujo en Qt 6.9.

Véase también primaries() y primaryPoints().

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

Establece la función de transferencia en transferFunctionTable.

Esta función se introdujo en Qt 6.1.

Véase también transferFunction() y withTransferFunction().

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

Establece la función de transferencia a transferFunction y gamma.

Véase también transferFunction(), gamma() y withTransferFunction().

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

Establece las funciones de transferencia a redTransferFunctionTable, greenTransferFunctionTable y blueTransferFunctionTable.

Esta función se introdujo en Qt 6.1.

Véase también withTransferFunctions().

[since 6.8] void QColorSpace::setWhitePoint(QPointF whitePoint)

Establece el punto blanco a utilizar para este espacio de color en whitePoint.

Esta función se introdujo en Qt 6.8.

Véase también whitePoint().

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

Intercambia este espacio de color con other. Esta operación es muy rápida y nunca falla.

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

Devuelve la función de transferencia predefinida del espacio de color o TransferFunction::Custom si no coincide con ninguna de ellas.

Véase también gamma(), setTransferFunction() y withTransferFunction().

[noexcept, since 6.8] QColorSpace::TransformModel QColorSpace::transformModel() const

Devuelve el modelo de procesamiento transfrom utilizado para este espacio de color.

Esta función se introdujo en Qt 6.8.

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

Genera y devuelve una transformación del espacio de color de este espacio de color a colorspace.

[since 6.8] QPointF QColorSpace::whitePoint() const

Devuelve el punto blanco utilizado para este espacio de color. Devuelve un QPointF nulo si no está definido.

Esta función se introdujo en Qt 6.8.

Véase también setWhitePoint().

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

Devuelve una copia de este espacio de color, excepto utilizando la función de transferencia descrita por transferFunctionTable.

Esta función se introdujo en Qt 6.1.

Véase también transferFunction() y setTransferFunction().

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

Devuelve una copia de este espacio de color, excepto utilizando la función de transferencia transferFunction y gamma.

Véase también transferFunction(), gamma(), y setTransferFunction().

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

Devuelve una copia de este espacio de color, excepto usando las funciones de transferencia descritas por redTransferFunctionTable, greenTransferFunctionTable y blueTransferFunctionTable.

Esta función se introdujo en Qt 6.1.

Véase también setTransferFunctions().

QColorSpace::operator QVariant() const

Devuelve el espacio de color como QVariant.

Relacionados No miembros

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

Devuelve true si el espacio de color colorSpace1 no es igual al espacio de color colorSpace2; en caso contrario devuelve false

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

Escribe el colorSpace dado en el stream dado como un perfil ICC.

Véase también QColorSpace::iccProfile() y Serialización de tipos de datos Qt.

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

Devuelve true si el espacio de color colorSpace1 es igual al espacio de color colorSpace2; en caso contrario devuelve false

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

Lee un espacio de color del stream dado y lo almacena en el colorSpace dado.

Véase también QColorSpace::fromIccProfile() y Serialización de tipos de datos Qt.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.