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 |
No miembros relacionados
| 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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::AtBeginning | 0 | El canal alfa se pondrá delante de los canales de color. Por ejemplo ARGB. |
QPixelFormat::AtEnd | 1 | El 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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::NotPremultiplied | 0 | El canal alfa no se multiplica en los canales de color. |
QPixelFormat::Premultiplied | 1 | El 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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::IgnoresAlpha | 1 | No se utiliza el canal alfa. |
QPixelFormat::UsesAlpha | 0 | Se 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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::LittleEndian | 0 | El orden de los bytes es little endian. |
QPixelFormat::BigEndian | 1 | El orden de los bytes es big endian. |
QPixelFormat::CurrentSystemEndian | 2 | Este 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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::RGB | 0 | El modelo de color es RGB. |
QPixelFormat::BGR | 1 | Esta es lógicamente la versión endian opuesta de RGB. Sin embargo, para facilitar su uso tiene su propio modelo. |
QPixelFormat::Indexed | 2 | El modelo de color utiliza una paleta de colores. |
QPixelFormat::Grayscale | 3 | El modelo de color es Escala de grises. |
QPixelFormat::CMYK | 4 | El modelo de color es CMYK. |
QPixelFormat::HSL | 5 | El modelo de color es HSL. |
QPixelFormat::HSV | 6 | El modelo de color es HSV. |
QPixelFormat::YUV | 7 | El modelo de color es YUV. |
QPixelFormat::Alpha | 8 | [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.
| Constante | Valor | Descripción |
|---|---|---|
QPixelFormat::UnsignedInteger | 0 | Los píxeles deben leerse como uno o más unsigned int. |
QPixelFormat::UnsignedShort | 1 | Los píxeles deben leerse como uno o más unsigned short. |
QPixelFormat::UnsignedByte | 2 | Los píxeles deben leerse como uno o más byte. |
QPixelFormat::FloatingPoint | 3 | Los 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.
| Constante | Valor |
|---|---|
QPixelFormat::YUV444 | 0 |
QPixelFormat::YUV422 | 1 |
QPixelFormat::YUV411 | 2 |
QPixelFormat::YUV420P | 3 |
QPixelFormat::YUV420SP | 4 |
QPixelFormat::YV12 | 5 |
QPixelFormat::UYVY | 6 |
QPixelFormat::YUYV | 7 |
QPixelFormat::NV12 | 8 |
QPixelFormat::NV21 | 9 |
QPixelFormat::IMC1 | 10 |
QPixelFormat::IMC2 | 11 |
QPixelFormat::IMC3 | 12 |
QPixelFormat::IMC4 | 13 |
QPixelFormat::Y8 | 14 |
QPixelFormat::Y16 | 15 |
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.