estrutura BITMAPV4HEADER (wingdi.h)

A estrutura BITMAPV4HEADER é o arquivo de cabeçalho de informações de bitmap. É uma versão estendida da estrutura BITMAPINFOHEADER .

Os aplicativos podem usar a estrutura BITMAPV5HEADER para adicionar funcionalidade.

Sintaxe

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;

Membros

bV4Size

O número de bytes exigidos pela estrutura . Os aplicativos devem usar esse membro para determinar qual estrutura de cabeçalho de informações de bitmap está sendo usada.

bV4Width

A largura do bitmap em pixels.

Se bV4Compression for BI_JPEG ou BI_PNG, bV4Width especificará a largura da imagem JPEG ou PNG em pixels.

bV4Height

A altura do bitmap, em pixels. Se bV4Height for positivo, o bitmap será um DIB de baixo para cima e sua origem será o canto inferior esquerdo. Se bV4Height for negativo, o bitmap será um DIB de cima para baixo e sua origem será o canto superior esquerdo.

Se bV4Height for negativo, indicando um DIB de cima para baixo, bV4Compression deverá ser BI_RGB ou BI_BITFIELDS. DiBs de cima para baixo não podem ser compactados.

Se bV4Compression for BI_JPEG ou BI_PNG, bV4Height especificará a altura da imagem JPEG ou PNG em pixels.

bV4Planes

O número de planos para o dispositivo de destino. Esse valor deve ser definido como 1.

bV4BitCount

O número de bits por pixel. O membro bV4BitCount da estrutura BITMAPV4HEADER determina o número de bits que definem cada pixel e o número máximo de cores no bitmap. Esse membro deve ser um dos valores a seguir.

Valor Significado
0 O número de bits por pixel é especificado ou está implícito no formato de arquivo JPEG ou PNG.
1 O bitmap é monocromático e o membro bmiColors de BITMAPINFO contém duas entradas. Cada bit na matriz de bitmap representa um pixel. Se o bit estiver claro, o pixel será exibido com a cor da primeira entrada na tabela bmiColors ; se o bit estiver definido, o pixel terá a cor da segunda entrada na tabela.
4 O bitmap tem no máximo 16 cores, e o membro bmiColors de BITMAPINFO contém até 16 entradas. Cada pixel no bitmap é representado por um índice de 4 bits na tabela de cores. Por exemplo, se o primeiro byte no bitmap for 0x1F, o byte representará dois pixels. O primeiro pixel contém a cor na segunda entrada de tabela e o segundo pixel contém a cor na décima sexta entrada de tabela.
8 O bitmap tem um máximo de 256 cores, e o membro bmiColors de BITMAPINFO contém até 256 entradas. Nesse caso, cada byte na matriz representa um único pixel.
16 O bitmap tem no máximo 2^16 cores. Se o membro bV4Compression da estrutura BITMAPV4HEADER for BI_RGB, o membro bmiColors de BITMAPINFO será NULL. Cada WORD na matriz de bitmap representa um único pixel. As intensidades relativas de vermelho, verde e azul são representadas com cinco bits para cada componente de cor. O valor de azul está nos cinco bits menos significativos, seguido por cinco bits cada para verde e vermelho, respectivamente. O bit mais significativo não é usado. A tabela de cores bmiColors é usada para otimizar as cores usadas em dispositivos baseados em paleta e deve conter o número de entradas especificadas pelo membro bV4ClrUsed do BITMAPV4HEADER. Se o membro bV4Compression do BITMAPV4HEADER for BI_BITFIELDS, o membro bmiColors conterá três máscaras de cores DWORD que especificam os componentes vermelho, verde e azul de cada pixel. Cada WORD na matriz de bitmap representa um único pixel.
24 O bitmap tem um máximo de 2^24 cores e o membro bmiColors de BITMAPINFO é NULL. Cada trigêmeo de 3 bytes na matriz de bitmap representa as intensidades relativas de azul, verde e vermelho para um pixel. A tabela de cores bmiColors é usada para otimizar as cores usadas em dispositivos baseados em paleta e deve conter o número de entradas especificadas pelo membro bV4ClrUsed do BITMAPV4HEADER.
32 O bitmap tem no máximo 2^32 cores. Se o membro bV4Compression do BITMAPV4HEADER for BI_RGB, o membro bmiColors de BITMAPINFO será NULL. Cada DWORD na matriz de bitmap representa as intensidades relativas de azul, verde e vermelho para um pixel. O valor de azul está nos 8 bits menos significativos, seguido por 8 bits cada para verde e vermelho. O byte alto em cada DWORD não é usado. A tabela de cores bmiColors é usada para otimizar as cores usadas em dispositivos baseados em paleta e deve conter o número de entradas especificadas pelo membro bV4ClrUsed do BITMAPV4HEADER. Se o membro bV4Compression do BITMAPV4HEADER for BI_BITFIELDS, o membro bmiColors conterá três máscaras de cores DWORD que especificam os componentes vermelho, verde e azul de cada pixel. Cada DWORD na matriz de bitmap representa um único pixel.

bV4V4Compression

O tipo de compactação para um bitmap compactado de baixo para cima (DIBs de cima para baixo não podem ser compactados). Esse membro pode ser um dos valores a seguir.

Valor Descrição
BI_RGB Um formato descompactado.
BI_RLE8 Um formato RLE (codificado em comprimento de execução) para bitmaps com 8 bpp. O formato de compactação é um formato de 2 bytes que consiste em um byte de contagem seguido por um byte que contém um índice de cores. Para obter mais informações, consulte Compactação de bitmap.
BI_RLE4 Um formato RLE para bitmaps com 4 bpp. O formato de compactação é um formato de 2 bytes que consiste em um byte de contagem seguido por dois índices de cores de comprimento de palavra. Para obter mais informações, consulte Compactação de bitmap.
BI_BITFIELDS Especifica que o bitmap não é compactado. Os membros bV4RedMask, bV4GreenMask e bV4BlueMask especificam os componentes vermelho, verde e azul para cada pixel. Isso é válido quando usado com bitmaps de 16 e 32 bpp.
BI_JPEG Especifica que a imagem é compactada usando o formato de intercâmbio de arquivo JPEG. A compactação JPEG compensa a compactação contra perda; ele pode obter uma taxa de compactação de 20:1 com pouca perda perceptível.
BI_PNG Especifica que a imagem é compactada usando o formato de intercâmbio de arquivos PNG.

bV4SizeImage

O tamanho, em bytes, da imagem. Isso pode ser definido como zero para BI_RGB bitmaps.

Se bV4Compression for BI_JPEG ou BI_PNG, bV4SizeImage será o tamanho do buffer de imagem JPEG ou PNG.

bV4XPelsPerMeter

A resolução horizontal, em pixels por medidor, do dispositivo de destino para o bitmap. Um aplicativo pode usar esse valor para selecionar um bitmap de um grupo de recursos que melhor corresponda às características do dispositivo atual.

bV4YPelsPerMeter

A resolução vertical, em pixels por medidor, do dispositivo de destino para o bitmap.

bV4ClrUsed

O número de índices de cores na tabela de cores que são realmente usados pelo bitmap. Se esse valor for zero, o bitmap usará o número máximo de cores correspondente ao valor do membro bV4BitCount para o modo de compactação especificado por bV4Compression.

Se bV4ClrUsed for diferente de zero e o membro bV4BitCount for menor que 16, o membro bV4ClrUsed especificará o número real de cores que o mecanismo gráfico ou o driver de dispositivo acessa. Se bV4BitCount for 16 ou maior, o membro bV4ClrUsed especificará o tamanho da tabela de cores usada para otimizar o desempenho das paletas de cores do sistema. Se bV4BitCount for igual a 16 ou 32, a paleta de cores ideal começará imediatamente após a BITMAPV4HEADER.

bV4ClrImportant

O número de índices de cores necessários para exibir o bitmap. Se esse valor for zero, todas as cores serão importantes.

bV4RedMask

Máscara de cores que especifica o componente vermelho de cada pixel, válido somente se bV4Compression estiver definido como BI_BITFIELDS.

bV4GreenMask

Máscara de cores que especifica o componente verde de cada pixel, válido somente se bV4Compression estiver definido como BI_BITFIELDS.

bV4BlueMask

Máscara de cores que especifica o componente azul de cada pixel, válido somente se bV4Compression estiver definido como BI_BITFIELDS.

bV4AlphaMask

Máscara de cores que especifica o componente alfa de cada pixel.

bV4CSType

O espaço de cor do DIB. A tabela a seguir lista o valor de bV4CSType.

Valor Significado
LCS_CALIBRATED_RGB Esse valor indica que pontos de extremidade e valores gama são fornecidos nos campos apropriados.
 

Consulte a estrutura LOGCOLORSPACE para obter informações que definem um espaço de cor lógico.

bV4Endpoints

Uma estrutura CIEXYZTRIPLE que especifica as coordenadas x, y e z das três cores que correspondem aos pontos de extremidade vermelhos, verdes e azuis para o espaço de cor lógica associado ao bitmap. Esse membro é ignorado, a menos que o membro bV4CSType especifique LCS_CALIBRATED_RGB.

Nota Um espaço de cor é um modelo para representar a cor numericamente em termos de três ou mais coordenadas. Por exemplo, o espaço de cor RGB representa cores em termos das coordenadas vermelha, verde e azul.
 

bV4GammaRed

Curva de resposta de tom para vermelho. Esse membro é ignorado, a menos que os valores de cor sejam valores RGB calibrados e bV4CSType seja definido como LCS_CALIBRATED_RGB. Especifique no formato 16.16 fixo sem sinal. Os 16 bits superiores são o valor inteiro sem sinal. Os 16 bits inferiores são a parte fracionária.

bV4GammaGreen

Curva de resposta de tom para verde. Usado se bV4CSType estiver definido como LCS_CALIBRATED_RGB. Especifique no formato 16.16 fixo sem sinal. Os 16 bits superiores são o valor inteiro sem sinal. Os 16 bits inferiores são a parte fracionária.

bV4GammaBlue

Curva de resposta de tom para azul. Usado se bV4CSType estiver definido como LCS_CALIBRATED_RGB. Especifique no formato 16.16 fixo sem sinal. Os 16 bits superiores são o valor inteiro sem sinal. Os 16 bits inferiores são a parte fracionária.

Comentários

A estrutura BITMAPV4HEADER é estendida para permitir que uma imagem JPEG ou PNG seja passada como a imagem de origem para StretchDIBits.

Requisitos

   
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho wingdi.h (inclua Windows.h)

Confira também

BITMAPINFO

BITMAPINFOHEADER

BITMAPV5HEADER

Estruturas de bitmap

Visão geral do Bitmaps

CIEXYZTRIPLE

Createdibitmap

LOGCOLORSPACE

Stretchdibits