En esta página

QPixelFormat Class

QPixelFormat es una clase para describir diferentes diseños de píxeles en buffers gráficos. Más...

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

Tipos Públicos

enum AlphaPosition { AtBeginning, AtEnd }
enum AlphaPremultiplied { NotPremultiplied, Premultiplied }
enum AlphaUsage { IgnoresAlpha, UsesAlpha }
enum ByteOrder { LittleEndian, BigEndian, CurrentSystemEndian }
enum ColorModel { RGB, BGR, Indexed, Grayscale, CMYK, …, Alpha }
enum TypeInterpretation { UnsignedInteger, UnsignedShort, UnsignedByte, FloatingPoint }
enum YUVLayout { YUV444, YUV422, YUV411, YUV420P, YUV420SP, …, Y16 }

Funciones públicas

QPixelFormat()
QPixelFormat(QPixelFormat::ColorModel colorModel, uchar firstSize, uchar secondSize, uchar thirdSize, uchar fourthSize, uchar fifthSize, uchar alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied, QPixelFormat::TypeInterpretation typeInterpretation, QPixelFormat::ByteOrder byteOrder = CurrentSystemEndian, uchar subEnum = 0)
QPixelFormat::AlphaPosition alphaPosition() const
uchar alphaSize() const
QPixelFormat::AlphaUsage alphaUsage() const
uchar bitsPerPixel() const
uchar blackSize() const
uchar blueSize() const
uchar brightnessSize() const
QPixelFormat::ByteOrder byteOrder() const
uchar channelCount() const
QPixelFormat::ColorModel colorModel() const
uchar cyanSize() const
uchar greenSize() const
uchar hueSize() const
uchar lightnessSize() const
uchar magentaSize() const
QPixelFormat::AlphaPremultiplied premultiplied() const
uchar redSize() const
uchar saturationSize() const
QPixelFormat::TypeInterpretation typeInterpretation() const
uchar yellowSize() const
QPixelFormat::YUVLayout yuvLayout() const
QPixelFormat qPixelFormatAlpha(uchar channelSize, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)
QPixelFormat qPixelFormatCmyk(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)
QPixelFormat qPixelFormatGrayscale(uchar channelSize, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)
QPixelFormat qPixelFormatHsl(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::FloatingPoint)
QPixelFormat qPixelFormatHsv(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::FloatingPoint)
QPixelFormat qPixelFormatRgba(uchar redSize, uchar greenSize, uchar blueSize, uchar alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied = QPixelFormat::NotPremultiplied, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)
QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout yuvLayout, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::AlphaPremultiplied premultiplied = QPixelFormat::NotPremultiplied, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedByte, QPixelFormat::ByteOrder byteOrder = QPixelFormat::BigEndian)

Descripción Detallada

En Qt a menudo existe la necesidad de representar la disposición de los píxeles en un búfer gráfico. QPixelFormat puede describir hasta 5 canales de color y 1 canal alfa, incluyendo detalles sobre como estos canales son representados en memoria individualmente y en relación unos con otros.

typeInterpretation() y byteOrder() determinan cómo debe leerse/interpretarse cada píxel, mientras que alphaSize(), alphaUsage(), alphaPosition(), y premultiplied() describen la posición y propiedades del posible canal alfa.

No hay soporte para describir los macro píxeles de YUV. En su lugar, se proporciona una lista de YUV formats. Cuando un QPixelFormat describe un formato YUV, el valor bitsPerPixel() se deduce del diseño YUV.

Documentación de los tipos de miembros

enum QPixelFormat::AlphaPosition

Este enum describe la alpha position del formato de píxel.

ConstanteValorDescripción
QPixelFormat::AtBeginning0El canal alfa se pondrá delante de los canales de color. Por ejemplo ARGB.
QPixelFormat::AtEnd1El canal alfa se pondrá detrás de los canales de color. Por ejemplo, RGBA.

Véase también alphaSize(), alphaUsage(), y premultiplied().

enum QPixelFormat::AlphaPremultiplied

Este enum describe si el canal alfa del formato de píxel es premultiplied en los canales de color o no.

ConstanteValorDescripción
QPixelFormat::NotPremultiplied0El canal alfa no se multiplica en los canales de color.
QPixelFormat::Premultiplied1El canal alfa se multiplica en los canales de color.

Véase también alphaSize(), alphaUsage(), y alphaPosition().

enum QPixelFormat::AlphaUsage

Este enum describe la alpha usage del formato de píxel.

ConstanteValorDescripción
QPixelFormat::IgnoresAlpha1No se utiliza el canal alfa.
QPixelFormat::UsesAlpha0Se utiliza el canal alfa.

Véase también alphaSize(), alphaPosition(), y premultiplied().

enum QPixelFormat::ByteOrder

Este enum describe la byte order del formato de píxel.

ConstanteValorDescripción
QPixelFormat::LittleEndian0El orden de los bytes es little endian.
QPixelFormat::BigEndian1El orden de los bytes es big endian.
QPixelFormat::CurrentSystemEndian2Este enum no será almacenado, pero es convertido en el constructor al enum endian que coincida con el enum del sistema actual.

Véase también typeInterpretation().

enum QPixelFormat::ColorModel

Este enum describe la color model del formato de píxel.

ConstanteValorDescripción
QPixelFormat::RGB0El modelo de color es RGB.
QPixelFormat::BGR1Esta es lógicamente la versión endian opuesta de RGB. Sin embargo, para facilitar su uso tiene su propio modelo.
QPixelFormat::Indexed2El modelo de color utiliza una paleta de colores.
QPixelFormat::Grayscale3El modelo de color es Escala de grises.
QPixelFormat::CMYK4El modelo de color es CMYK.
QPixelFormat::HSL5El modelo de color es HSL.
QPixelFormat::HSV6El modelo de color es HSV.
QPixelFormat::YUV7El modelo de color es YUV.
QPixelFormat::Alpha8[desde 5.5] No hay modelo de color, sólo se utiliza alfa.

enum QPixelFormat::TypeInterpretation

Este enum describe la type interpretation del formato de píxel.

ConstanteValorDescripción
QPixelFormat::UnsignedInteger0Los píxeles deben leerse como uno o más unsigned int.
QPixelFormat::UnsignedShort1Los píxeles deben leerse como uno o más unsigned short.
QPixelFormat::UnsignedByte2Los píxeles deben leerse como uno o más byte.
QPixelFormat::FloatingPoint3Los píxeles deben leerse como uno o más números de coma flotante, con el tipo concreto definido por el canal de color/alfa, es decir, qfloat16 para formatos de medio flotante de 16 bits y float para formatos de flotante completo de 32 bits.

Véase también byteOrder().

enum QPixelFormat::YUVLayout

Este enum describe la YUV layout del formato de píxel, dado que tiene un modelo de color de QPixelFormat::YUV.

ConstanteValor
QPixelFormat::YUV4440
QPixelFormat::YUV4221
QPixelFormat::YUV4112
QPixelFormat::YUV420P3
QPixelFormat::YUV420SP4
QPixelFormat::YV125
QPixelFormat::UYVY6
QPixelFormat::YUYV7
QPixelFormat::NV128
QPixelFormat::NV219
QPixelFormat::IMC110
QPixelFormat::IMC211
QPixelFormat::IMC312
QPixelFormat::IMC413
QPixelFormat::Y814
QPixelFormat::Y1615

Documentación de la función miembro

[constexpr noexcept] QPixelFormat::QPixelFormat()

Crea un formato de píxel nulo. Este formato se asigna a QImage::Format_Invalid.

[constexpr noexcept] QPixelFormat::QPixelFormat(QPixelFormat::ColorModel colorModel, uchar firstSize, uchar secondSize, uchar thirdSize, uchar fourthSize, uchar fifthSize, uchar alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied, QPixelFormat::TypeInterpretation typeInterpretation, QPixelFormat::ByteOrder byteOrder = CurrentSystemEndian, uchar subEnum = 0)

Crea un QPixelFormat que asigna sus datos a los atributos. colorModel se pondrán en un buffer de 4 bits de longitud.

firstSize secondSize thirdSize fourthSize fifthSize alphaSize representan el tamaño de un canal. Los canales se utilizarán para diferentes usos dependiendo del colorModel. Para RGB el firstSize representará el canal Rojo. En CMYK representará el valor del canal Cian.

alphaUsage representa si se utiliza o no el canal alfa.

alphaPosition es la posición del canal alfa.

premultiplied representa si el canal alfa ya está multiplicado con los canales de color.

typeInterpretation es como se interpreta el pixel.

byteOrder representa el formato del píxel. Este valor por defecto es CurrentSystemEndian, que se resolverá con el endianness del sistema para formatos no ordenados por bytes, y QPixelFormat::BigEndian para QPixelFormat::UnsignedByte.

subEnum se utiliza para colorModels que tienen que almacenar alguna información adicional con el suministro de un enum extra. Esto es usado por YUV para almacenar el tipo YUV El valor por defecto es 0.

Nota: Los formatos BGR tienen su propio modelo de color, y no deben ser descritos usando la endianidad opuesta a un formato RGB.

[constexpr noexcept] QPixelFormat::AlphaPosition QPixelFormat::alphaPosition() const

Función accesoria para la posición del canal alfa en relación con los canales de color.

Para los formatos en los que los canales individuales se asignan a unidades individuales, la posición alfa es relativa a estas unidades. Por ejemplo, para QImage::Format_RGBA16FPx4, que tiene una posición alfa de QPixelFormat::AtEnd, el alfa es el último qfloat16 leído.

Para los formatos en los que varios canales están empaquetados en una sola unidad, los valores QPixelFormat::AtBeginning y QPixelFormat::AtEnd se asignan a los bits más significativos y menos significativos de la unidad empaquetada, con respecto al propio formato byteOrder().

Por ejemplo, para QImage::Format_ARGB32, que tiene una interpretación de tipo de QPixelFormat::UnsignedInteger y un byteOrder() que siempre coincide con el sistema anfitrión, la posición alfa de QPixelFormat::AtBeginning significa que el alfa siempre se puede encontrar en 0xFF000000.

Si el formato de píxel y el endianness del host no coinciden, se debe tener cuidado para mapear correctamente la disposición del formato de píxel a la disposición de la memoria del host.

Véase también alphaUsage(), alphaSize(), y premultiplied().

[constexpr noexcept] uchar QPixelFormat::alphaSize() const

Función accesoria para el tamaño del canal alfa.

[constexpr noexcept] QPixelFormat::AlphaUsage QPixelFormat::alphaUsage() const

Función accesoria para saber si se utiliza o no el canal alfa.

A veces el formato de píxel reserva lugar para un canal alfa, por lo que alphaSize() devolverá > 0, pero el canal alfa no se utiliza/ignora.

Por ejemplo, para QImage::Format_RGB32, bitsPerPixel() es 32, porque el canal alfa tiene un tamaño de 8, pero alphaUsage() refleja QPixelFormat::IgnoresAlpha.

Tenga en cuenta que en tales situaciones el position del canal alfa no utilizado sigue siendo importante, ya que afecta a la colocación de los canales de color.

Véase también alphaPosition(), alphaSize(), y premultiplied().

[constexpr noexcept] uchar QPixelFormat::bitsPerPixel() const

Función accesoria para los bits utilizados por píxel. Esta función devuelve la suma de todos los canales de color + el tamaño del canal alfa.

[constexpr noexcept] uchar QPixelFormat::blackSize() const

Función accesoria para el canal de color negro/clave.

[constexpr noexcept] uchar QPixelFormat::blueSize() const

Función accesoria para el tamaño del canal de color azul.

[constexpr noexcept] uchar QPixelFormat::brightnessSize() const

Función accesoria para el tamaño del canal de brillo.

[constexpr noexcept] QPixelFormat::ByteOrder QPixelFormat::byteOrder() const

El orden de bytes del formato de píxel determina la disposición de memoria de las unidades de tipo individuales, como se describe en typeInterpretation().

Esta función nunca devolverá QPixelFormat::CurrentSystemEndian ya que este valor se traduce al valor endian del sistema en el constructor.

Para formatos de píxel con typeInterpretation() QPixelFormat::UnsignedByte esto será típicamente QPixelFormat::BigEndian, mientras que otras interpretaciones de tipo reflejarán típicamente la endianidad del sistema actual.

Si el orden de los bytes del formato de píxel coincide con el sistema actual, las unidades de tipo individuales pueden leerse y manipularse utilizando las mismas máscaras de bits y operaciones, independientemente del sistema anfitrión. Por ejemplo, con QImage::Format_ARGB32, que tiene una interpretación de tipo QPixelFormat::UnsignedInteger, el alfa siempre se puede leer enmascarando unsigned int por 0xFF000000, independientemente del formato del host.

Si el formato de píxel y el ancho de banda del host no coinciden, hay que tener cuidado. Las clases como QImage no intercambian los bits internos para que coincidan con el ancho de banda del sistema anfitrión en estos casos.

Véase también typeInterpretation() y alphaPosition().

[constexpr noexcept] uchar QPixelFormat::channelCount() const

Función accesoria para el recuento de canales.

El recuento de canales representa canales (color y alfa) con un tamaño > 0.

[constexpr noexcept] QPixelFormat::ColorModel QPixelFormat::colorModel() const

Función accesoria para el modelo de color.

Tenga en cuenta que para QPixelFormat::YUV no se pueden describir los macropíxeles individuales. En su lugar, se proporciona una lista de YUV formats, y el valor bitsPerPixel() se deduce de la disposición YUV.

[constexpr noexcept] uchar QPixelFormat::cyanSize() const

Función accesoria para el canal de color cian.

[constexpr noexcept] uchar QPixelFormat::greenSize() const

Función accesoria para el tamaño del canal de color verde.

[constexpr noexcept] uchar QPixelFormat::hueSize() const

Función accesoria para el tamaño del canal de tono.

[constexpr noexcept] uchar QPixelFormat::lightnessSize() const

Función accesoria para el tamaño del canal de luminosidad.

[constexpr noexcept] uchar QPixelFormat::magentaSize() const

Función accesoria para el canal de color megenta.

[constexpr noexcept] QPixelFormat::AlphaPremultiplied QPixelFormat::premultiplied() const

Función accesoria para saber si el canal alfa se multiplica en los canales de color.

[constexpr noexcept] uchar QPixelFormat::redSize() const

Función accesoria para el tamaño del canal de color rojo.

[constexpr noexcept] uchar QPixelFormat::saturationSize() const

Función accesoria para el tamaño del canal de saturación.

[constexpr noexcept] QPixelFormat::TypeInterpretation QPixelFormat::typeInterpretation() const

La interpretación del tipo determina cómo debe leerse cada píxel.

Cada píxel se representa como una o más unidades del tipo dado, dispuestas secuencialmente en la memoria.

Nota: byte order del formato de píxel y el formato del sistema anfitrión sólo afectan a la disposición en memoria de cada unidad individual que se lee, no al orden relativo de las unidades.

Por ejemplo, QImage::Format_Mono tiene un pixel format de 1 bit por píxel y una interpretación de tipo QPixelFormat::UnsignedByte, que debe leerse como un único byte. Del mismo modo, QImage::Format_RGB888 tiene un pixel format de 24 bits por píxel y una interpretación de tipo QPixelFormat::UnsignedByte, que debe leerse como tres bytes consecutivos.

Muchos de los formatos QImage formats son de 32 bits con una interpretación de tipo QPixelFormat::UnsignedInteger, que debe leerse como un único unsigned int.

Para formatos QPixelFormat::FloatingPoint como QImage::Format_RGBA16FPx4 o QImage::Format_RGBA32FPx4, el tipo se determina en función del tamaño de los canales de color/alfa individuales, con qfloat16 para formatos de medio flotante de 16 bits y float para formatos de flotante completo de 32 bits.

Véase también byteOrder().

[constexpr noexcept] uchar QPixelFormat::yellowSize() const

Función accesoria para el canal de color amarillo.

[constexpr noexcept] QPixelFormat::YUVLayout QPixelFormat::yuvLayout() const

Función de acceso para YUVLayout. Es difícil describir los canales de color de un formato de píxel YUV, ya que el modelo de color YUV utiliza macropíxeles. En su lugar, la disposición de los píxeles se almacena como un enum.

No miembros relacionados

[constexpr noexcept] QPixelFormat qPixelFormatAlpha(uchar channelSize, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)

Función constructora para crear un formato alfa. Un formato de máscara puede describirse pasando 1 a channelSize. También es posible definir formatos alfa muy precisos utilizando dobles para describir cada píxel pasando 8 como channelSize y FloatingPoint como typeInterpretation.

Véase también QPixelFormat::TypeInterpretation.

[constexpr noexcept] QPixelFormat qPixelFormatCmyk(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)

Función constructora para crear formatos CMYK. El número de canales será 4 ó 5 dependiendo de si alphaSize es mayor que cero o no. Los canales de color CMYK se ajustarán todos al valor de channelSize.

alphaUsage alphaPosition y typeInterpretation son accesibles con los accesores del mismo nombre.

Véase también QPixelFormat::TypeInterpretation.

[constexpr noexcept] QPixelFormat qPixelFormatGrayscale(uchar channelSize, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)

Función constructora para crear un formato de escala de grises. Los formatos monocromos pueden describirse pasando 1 a channelSize. También es posible definir formatos de escala de grises muy precisos utilizando dobles para describir cada píxel pasando 8 como channelSize y FloatingPoint como typeInterpretation.

Véase también QPixelFormat::TypeInterpretation.

[constexpr noexcept] QPixelFormat qPixelFormatHsl(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::FloatingPoint)

Función constructora para crear formatos HSL. La cuenta de canales será 3 o 4 dependiendo de si alphaSize es mayor que 0.

channelSize establecerá el hueSize saturationSize y lightnessSize al mismo valor.

alphaUsage alphaPosition y typeInterpretation son todos accesibles con los accessors con el mismo nombre.

[constexpr noexcept] QPixelFormat qPixelFormatHsv(uchar channelSize, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::FloatingPoint)

Función constructora para crear formatos HSV. La cuenta de canales será 3 o 4 dependiendo de si alphaSize es mayor que 0.

channelSize establecerá el hueSize saturationSize y brightnessSize al mismo valor.

alphaUsage alphaPosition y typeInterpretation son todos accesibles con los accessors con el mismo nombre.

[constexpr noexcept] QPixelFormat qPixelFormatRgba(uchar redSize, uchar greenSize, uchar blueSize, uchar alphaSize, QPixelFormat::AlphaUsage alphaUsage, QPixelFormat::AlphaPosition alphaPosition, QPixelFormat::AlphaPremultiplied premultiplied = QPixelFormat::NotPremultiplied, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedInteger)

Función constructora que crea un formato de píxel RGB. redSize greenSize blueSize representa el tamaño de cada canal de color. alphaSize describe el tamaño del canal alfa y su posición se describe con alphaPosition. alphaUsage se utiliza para determinar si el canal alfa se utiliza o no. Configurando el tamaño del canal alfa a 8 y alphaUsage a IgnoresAlpha es como es posible crear un formato de 32 bits donde los canales rgb solo usan 24 bits combinados. premultiplied typeInterpretation son accesibles con accesores con el mismo nombre.

Ver también QPixelFormat::TypeInterpretation.

QPixelFormat qPixelFormatYuv(QPixelFormat::YUVLayout yuvLayout, uchar alphaSize = 0, QPixelFormat::AlphaUsage alphaUsage = QPixelFormat::IgnoresAlpha, QPixelFormat::AlphaPosition alphaPosition = QPixelFormat::AtBeginning, QPixelFormat::AlphaPremultiplied premultiplied = QPixelFormat::NotPremultiplied, QPixelFormat::TypeInterpretation typeInterpretation = QPixelFormat::UnsignedByte, QPixelFormat::ByteOrder byteOrder = QPixelFormat::BigEndian)

Función constructora para crear un QPixelFormat que describe un formato YUV con yuvLayout. alphaSize describe el tamaño de un canal alfa potencial y su posición se describe con alphaPosition. Los canales "primero" "segundo" .. "quinto" se ponen todos a 0. alphaUsage premultiplied typeInterpretation y byteOrder funcionarán como con otros formatos.

© 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.