Compartir a través de


estructura BITMAPV4HEADER (wingdi.h)

La estructura BITMAPV4HEADER es el archivo de encabezado de información del mapa de bits. Es una versión extendida de la estructura BITMAPINFOHEADER .

Las aplicaciones pueden usar la estructura de BITMAPV5HEADER para agregar funcionalidad.

Sintaxis

typedef struct {
  DWORD        bV4Size;
  LONG         bV4Width;
  LONG         bV4Height;
  WORD         bV4Planes;
  WORD         bV4BitCount;
  DWORD        bV4V4Compression;
  DWORD        bV4SizeImage;
  LONG         bV4XPelsPerMeter;
  LONG         bV4YPelsPerMeter;
  DWORD        bV4ClrUsed;
  DWORD        bV4ClrImportant;
  DWORD        bV4RedMask;
  DWORD        bV4GreenMask;
  DWORD        bV4BlueMask;
  DWORD        bV4AlphaMask;
  DWORD        bV4CSType;
  CIEXYZTRIPLE bV4Endpoints;
  DWORD        bV4GammaRed;
  DWORD        bV4GammaGreen;
  DWORD        bV4GammaBlue;
} BITMAPV4HEADER, *LPBITMAPV4HEADER, *PBITMAPV4HEADER;

Miembros

bV4Size

Número de bytes requeridos por la estructura. Las aplicaciones deben usar este miembro para determinar qué estructura de encabezado de información de mapa de bits se está usando.

bV4Width

Ancho del mapa de bits, en píxeles.

Si bV4Compression es BI_JPEG o BI_PNG, bV4Width especifica el ancho de la imagen JPEG o PNG en píxeles.

bV4Height

Alto del mapa de bits, en píxeles. Si bV4Height es positivo, el mapa de bits es una DIB de abajo arriba y su origen es la esquina inferior izquierda. Si bV4Height es negativo, el mapa de bits es una DIB de arriba abajo y su origen es la esquina superior izquierda.

Si bV4Height es negativo, lo que indica una DIB de arriba abajo, bV4Compression debe ser BI_RGB o BI_BITFIELDS. Los DIB de arriba abajo no se pueden comprimir.

Si bV4Compression es BI_JPEG o BI_PNG, bV4Height especifica el alto de la imagen JPEG o PNG en píxeles.

bV4Planes

Número de planos para el dispositivo de destino. Este valor debe establecerse en 1.

bV4BitCount

Número de bits por píxel. El miembro bV4BitCount de la estructura BITMAPV4HEADER determina el número de bits que definen cada píxel y el número máximo de colores del mapa de bits. Este miembro debe ser uno de los siguientes valores.

Value Significado
0 El número de bits por píxel se especifica o está implícito en el formato de archivo JPEG o PNG.
1 El mapa de bits es monocromo y el miembro chromiumColors de BITMAPINFO contiene dos entradas. Cada bit de la matriz de mapa de bits representa un píxel. Si el bit está claro, el píxel se muestra con el color de la primera entrada en la tabla del índice de colores ; si se establece el bit, el píxel tiene el color de la segunda entrada de la tabla.
4 El mapa de bits tiene un máximo de 16 colores, mientras que el miembro configColors de BITMAPINFO contiene hasta 16 entradas. Cada píxel del mapa de bits se representa mediante un índice de 4 bits en la tabla de colores. Por ejemplo, si el primer byte del mapa de bits es 0x1F, el byte representa dos píxeles. El primer píxel contiene el color de la segunda entrada de tabla y el segundo píxel contiene el color de la sexta entrada de tabla.
8 El mapa de bits tiene un máximo de 256 colores, y el miembro imcColors de BITMAPINFO contiene hasta 256 entradas. En este caso, cada byte de la matriz representa un solo píxel.
16 El mapa de bits tiene un máximo de 2^16 colores. Si el miembro bV4Compression de la estructura de BITMAPV4HEADER es BI_RGB, el miembro id. deBITMAPINFO es NULL. Cada WORD de la matriz de mapa de bits representa un solo píxel. Las densidades relativas de rojo, verde y azul se representan con cinco bits para cada componente de color. El valor de azul está en los cinco bits menos significativos, seguido de cinco bits cada uno para verde y rojo, respectivamente. No se usa el bit más significativo. La tabla de colores hexacolores se usa para optimizar los colores usados en dispositivos basados en paletas y debe contener el número de entradas especificadas por el miembro bV4ClrUsed del BITMAPV4HEADER. Si el miembro bV4Compression del BITMAPV4HEADER es BI_BITFIELDS, el miembro dlcolors contiene tres máscaras de color DWORD que especifican los componentes rojo, verde y azul de cada píxel. Cada WORD de la matriz de mapa de bits representa un solo píxel.
24 El mapa de bits tiene un máximo de 2^24 colores, y el miembro del índice de bitsColorsesNULL. Cada triplete de 3 bytes de la matriz de mapa de bits representa las densidades relativas de azul, verde y rojo para un píxel. La tabla de colores hexacolores se usa para optimizar los colores usados en dispositivos basados en paletas y debe contener el número de entradas especificadas por el miembro bV4ClrUsed del BITMAPV4HEADER.
32 El mapa de bits tiene un máximo de 2^32 colores. Si el miembro bV4Compression de la BITMAPV4HEADER es BI_RGB, el miembro inicicolores de BITMAPINFO es NULL. Cada DWORD de la matriz de mapa de bits representa las densidades relativas de azul, verde y rojo para un píxel. El valor de azul está en los 8 bits menos significativos, seguidos de 8 bits cada uno para verde y rojo. No se usa el byte alto en cada DWORD . La tabla de colores hexacolores se usa para optimizar los colores usados en dispositivos basados en paletas y debe contener el número de entradas especificadas por el miembro bV4ClrUsed del BITMAPV4HEADER. Si el miembro bV4Compression del BITMAPV4HEADER es BI_BITFIELDS, el miembro dlcolors contiene tres máscaras de color DWORD que especifican los componentes rojo, verde y azul de cada píxel. Cada DWORD de la matriz de mapa de bits representa un solo píxel.

bV4V4Compression

Tipo de compresión para un mapa de bits de abajo arriba comprimido (no se pueden comprimir los DIB de arriba abajo). Este miembro puede ser uno de los siguientes valores.

Value Descripción
BI_RGB Formato sin comprimir.
BI_RLE8 Formato codificado de longitud de ejecución (RLE) para mapas de bits con 8 bpp. El formato de compresión es un formato de 2 bytes que consta de un byte de recuento seguido de un byte que contiene un índice de color. Para obtener más información, vea Compresión de mapa de bits.
BI_RLE4 Formato RLE para mapas de bits con 4 bpp. El formato de compresión es un formato de 2 bytes que consta de un byte de recuento seguido de dos índices de color de longitud de palabra. Para obtener más información, vea Compresión de mapa de bits.
BI_BITFIELDS Especifica que el mapa de bits no está comprimido. Los miembros bV4RedMask, bV4GreenMask y bV4BlueMask especifican los componentes rojo, verde y azul para cada píxel. Esto es válido cuando se usa con mapas de bits de 16 y 32 bpp.
BI_JPEG Especifica que la imagen se comprime con el formato de intercambio de archivos JPEG. La compresión JPEG reduce la compresión contra la pérdida; puede lograr una relación de compresión de 20:1 con poca pérdida notable.
BI_PNG Especifica que la imagen se comprime con el formato de intercambio de archivos PNG.

bV4SizeImage

Tamaño, en bytes, de la imagen. Esto puede establecerse en cero para BI_RGB mapas de bits.

Si bV4Compression es BI_JPEG o BI_PNG, bV4SizeImage es el tamaño del búfer de imágenes JPEG o PNG.

bV4XPelsPerMeter

Resolución horizontal, en píxeles por medidor, del dispositivo de destino para el mapa de bits. Una aplicación puede usar este valor para seleccionar un mapa de bits de un grupo de recursos que coincida mejor con las características del dispositivo actual.

bV4YPelsPerMeter

Resolución vertical, en píxeles por medidor, del dispositivo de destino para el mapa de bits.

bV4ClrUsed

Número de índices de color de la tabla de colores que realmente usa el mapa de bits. Si este valor es cero, el mapa de bits usa el número máximo de colores correspondientes al valor del miembro bV4BitCount para el modo de compresión especificado por bV4Compression.

Si bV4ClrUsed es distinto de cero y el miembro bV4BitCount es menor que 16, el miembro bV4ClrUsed especifica el número real de colores a los que accede el motor gráfico o el controlador del dispositivo. Si bV4BitCount es 16 o superior, el miembro bV4ClrUsed especifica el tamaño de la tabla de colores utilizada para optimizar el rendimiento de las paletas de colores del sistema. Si bV4BitCount es igual a 16 o 32, la paleta de colores óptima comienza inmediatamente después del BITMAPV4HEADER.

bV4ClrImportant

Número de índices de color necesarios para mostrar el mapa de bits. Si este valor es cero, todos los colores son importantes.

bV4RedMask

Máscara de color que especifica el componente rojo de cada píxel, válido solo si bV4Compression está establecido en BI_BITFIELDS.

bV4GreenMask

Máscara de color que especifica el componente verde de cada píxel, válido solo si bV4Compression está establecido en BI_BITFIELDS.

bV4BlueMask

Máscara de color que especifica el componente azul de cada píxel, válido solo si bV4Compression está establecido en BI_BITFIELDS.

bV4AlphaMask

Máscara de color que especifica el componente alfa de cada píxel.

bV4CSType

Espacio de color de la DIB. En la tabla siguiente se muestra el valor de bV4CSType.

Value Significado
LCS_CALIBRATED_RGB Este valor indica que los puntos de conexión y los valores gamma se proporcionan en los campos adecuados.
 

Consulte la estructura LOGCOLORSPACE para obtener información sobre cómo definir un espacio de color lógico.

bV4Endpoints

Estructura CIEXYZTRIPLE que especifica las coordenadas x, y y z de los tres colores que corresponden a los extremos rojo, verde y azul para el espacio de color lógico asociado al mapa de bits. Este miembro se omite a menos que el miembro bV4CSType especifique LCS_CALIBRATED_RGB.

Nota Un espacio de colores es un modelo para representar el color numéricamente en términos de tres o más coordenadas. Por ejemplo, el espacio de colores RGB representa los colores en términos de las coordenadas roja, verde y azul.
 

bV4GammaRed

Curva de respuesta de tono para rojo. Este miembro se omite a menos que los valores de color estén calibrados valores RGB y bV4CSType esté establecido en LCS_CALIBRATED_RGB. Especifique en formato fijo 16.16 sin firmar. Los 16 bits superiores son el valor entero sin signo. Los 16 bits inferiores son la parte fraccionarcional.

bV4GammaGreen

Curva de respuesta de tono para verde. Se usa si bV4CSType está establecido en LCS_CALIBRATED_RGB. Especifique en formato fijo 16.16 sin firmar. Los 16 bits superiores son el valor entero sin signo. Los 16 bits inferiores son la parte fraccionarcional.

bV4GammaBlue

Curva de respuesta de tono para azul. Se usa si bV4CSType está establecido en LCS_CALIBRATED_RGB. Especifique en formato fijo 16.16 sin firmar. Los 16 bits superiores son el valor entero sin signo. Los 16 bits inferiores son la parte fraccionarcional.

Comentarios

La estructura BITMAPV4HEADER se extiende para permitir que una imagen JPEG o PNG se pase como imagen de origen a StretchDIBits.

Requisitos

   
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado wingdi.h (incluye Windows.h)

Consulte también

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

Estructuras de mapa de bits

Información general sobre mapas de bits

CIEXYZTRIPLE

CreateDIBitmap

LOGCOLORSPACE

StretchDIBits