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