estrutura BITMAPV5HEADER (wingdi.h)
A estrutura BITMAPV5HEADER é o arquivo de cabeçalho de informações de bitmap. É uma versão estendida da estrutura BITMAPINFOHEADER .
Sintaxe
typedef struct {
DWORD bV5Size;
LONG bV5Width;
LONG bV5Height;
WORD bV5Planes;
WORD bV5BitCount;
DWORD bV5Compression;
DWORD bV5SizeImage;
LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter;
DWORD bV5ClrUsed;
DWORD bV5ClrImportant;
DWORD bV5RedMask;
DWORD bV5GreenMask;
DWORD bV5BlueMask;
DWORD bV5AlphaMask;
DWORD bV5CSType;
CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed;
DWORD bV5GammaGreen;
DWORD bV5GammaBlue;
DWORD bV5Intent;
DWORD bV5ProfileData;
DWORD bV5ProfileSize;
DWORD bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
Membros
bV5Size
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.
bV5Width
A largura do bitmap em pixels.
Se bV5Compression for BI_JPEG ou BI_PNG, o membro bV5Width especificará a largura da imagem JPEG ou PNG descompactada em pixels.
bV5Height
A altura do bitmap, em pixels. Se o valor de bV5Height for positivo, o bitmap será um DIB de baixo para cima e sua origem será o canto inferior esquerdo. Se o valor bV5Height for negativo, o bitmap será um DIB de cima para baixo e sua origem será o canto superior esquerdo.
Se bV5Height for negativo, indicando um DIB de cima para baixo, bV5Compression deverá ser BI_RGB ou BI_BITFIELDS. DiBs de cima para baixo não podem ser compactados.
Se bV5Compression for BI_JPEG ou BI_PNG, o membro bV5Height especificará a altura da imagem JPEG ou PNG descompactada em pixels.
bV5Planes
O número de planos para o dispositivo de destino. Esse valor deve ser definido como 1.
bV5BitCount
O número de bits que definem cada pixel e o número máximo de cores no bitmap.
Esse membro pode 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 de cores 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 bV5Compression da estrutura BITMAPV5HEADER 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 é no mínimo significativo de cinco bits, seguido por cinco bits cada para verde e vermelho. 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 bV5ClrUsed do BITMAPV5HEADER. Se o membro bV5Compression do BITMAPV5HEADER for BI_BITFIELDS, o membro bmiColors conterá três máscaras de cores DWORD que especificam os componentes vermelho, verde e azul, respectivamente, de cada pixel. Cada WORD na matriz de bitmap representa um único pixel.
Quando o membro bV5Compression é BI_BITFIELDS, os bits definidos em cada máscara DWORD devem ser contíguos e não devem sobrepor os bits de outra máscara. Todos os bits no pixel não precisam ser usados. |
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, respectivamente, 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 bV5ClrUsed da estrutura BITMAPV5HEADER . |
32 | O bitmap tem no máximo 2^32 cores. Se o membro bV5Compression do BITMAPV5HEADER 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 bV5ClrUsed do BITMAPV5HEADER. Se o membro bV5Compression do BITMAPV5HEADER 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. |
bV5Compression
Especifica que o bitmap não é compactado. Os membros bV5RedMask, bV5GreenMask e bV5BlueMask especificam os componentes vermelho, verde e azul de cada pixel. Isso é válido quando usado com bitmaps de 16 e 32 bpp. Esse membro pode ser um dos valores a seguir.
Valor | Significado |
---|---|
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 dois bytes que consiste em um byte de contagem seguido por um byte que contém um índice de cores. Se bV5Compression for BI_RGB e o membro bV5BitCount for 16, 24 ou 32, a matriz de bitmap especificará as intensidades reais de azul, verde e vermelho em vez de usar índices de tabela 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 dois 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 e que as máscaras de cores para os componentes vermelho, verde e azul de cada pixel são especificadas nos membros bV5RedMask, bV5GreenMask e bV5BlueMask . 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 do 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 arquivo PNG. |
bV5SizeImage
O tamanho, em bytes, da imagem. Isso pode ser definido como zero para BI_RGB bitmaps.
Se bV5Compression for BI_JPEG ou BI_PNG, bV5SizeImage será o tamanho do buffer de imagem JPEG ou PNG.
bV5XPelsPerMeter
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.
bV5YPelsPerMeter
A resolução vertical, em pixels por medidor, do dispositivo de destino para o bitmap.
bV5ClrUsed
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 bV5BitCount para o modo de compactação especificado por bV5Compression.
Se bV5ClrUsed for diferente de zero e bV5BitCount for menor que 16, o membro bV5ClrUsed especificará o número real de cores que o mecanismo gráfico ou o driver de dispositivo acessa. Se bV5BitCount for 16 ou maior, o membro bV5ClrUsed especificará o tamanho da tabela de cores usada para otimizar o desempenho das paletas de cores do sistema. Se bV5BitCount for igual a 16 ou 32, a paleta de cores ideal começará imediatamente após a BITMAPV5HEADER. Se bV5ClrUsed for diferente de zero, a tabela de cores será usada em dispositivos palettizados e bV5ClrUsed especificará o número de entradas.
bV5ClrImportant
O número de índices de cores necessários para exibir o bitmap. Se esse valor for zero, todas as cores serão necessárias.
bV5RedMask
Máscara de cores que especifica o componente vermelho de cada pixel, válido somente se bV5Compression estiver definido como BI_BITFIELDS.
bV5GreenMask
Máscara de cores que especifica o componente verde de cada pixel, válido somente se bV5Compression estiver definido como BI_BITFIELDS.
bV5BlueMask
Máscara de cores que especifica o componente azul de cada pixel, válido somente se bV5Compression estiver definido como BI_BITFIELDS.
bV5AlphaMask
Máscara de cores que especifica o componente alfa de cada pixel.
bV5CSType
O espaço de cor do DIB.
A tabela a seguir especifica os valores para bV5CSType.
Valor | Significado |
---|---|
LCS_CALIBRATED_RGB | Esse valor implica que pontos de extremidade e valores gama são fornecidos nos campos apropriados. |
LCS_sRGB | Especifica que o bitmap está no espaço de cores sRGB. |
LCS_WINDOWS_COLOR_SPACE | Esse valor indica que o bitmap está no espaço de cor padrão do sistema, sRGB. |
PROFILE_LINKED | Esse valor indica que bV5ProfileData aponta para o nome do arquivo do perfil a ser usado (valores gama e pontos de extremidade são ignorados). |
PROFILE_EMBEDDED | Esse valor indica que bV5ProfileData aponta para um buffer de memória que contém o perfil a ser usado (valores gama e pontos de extremidade são ignorados). |
Consulte a estrutura LOGCOLORSPACE para obter informações que definem um espaço de cor lógico.
bV5Endpoints
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 bV5CSType especifique LCS_CALIBRATED_RGB.
bV5GammaRed
Curva de resposta tonificada para vermelho. Usado se bV5CSType 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.
bV5GammaGreen
Curva de resposta tonificada para verde. Usado se bV5CSType 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.
bV5GammaBlue
Curva de resposta tonificada para azul. Usado se bV5CSType 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.
bV5Intent
Intenção de renderização para bitmap. Esse pode ser um dos valores a seguir.
Valor | Intencional | Nome do ICC | Significado |
---|---|---|---|
LCS_GM_ABS_COLORIMETRIC | Corresponder a | Corimétrica Absoluta | Mantém o ponto branco. Corresponde as cores à cor mais próxima na gama de destino. |
LCS_GM_BUSINESS | Graphic | Saturação | Mantém a saturação. Usado para gráficos de negócios e outras situações em que cores não undithered são necessárias. |
LCS_GM_GRAPHICS | Prova | Colorimetric relativo | Mantém a correspondência colorimétrica. Usado para designs gráficos e cores nomeadas. |
LCS_GM_IMAGES | Picture | Percepção | Mantém o contraste. Usado para fotografias e imagens naturais. |
bV5ProfileData
O deslocamento, em bytes, desde o início da estrutura BITMAPV5HEADER até o início dos dados de perfil. Se o perfil estiver inserido, os dados do perfil serão o perfil real e eles serão vinculados. (Os dados do perfil são o nome do arquivo encerrado em nulo do perfil.) Não pode ser uma cadeia de caracteres Unicode. Ele deve ser composto exclusivamente por caracteres do conjunto de caracteres do Windows (página de código 1252). Esses membros de perfil são ignorados, a menos que o membro bV5CSType especifique PROFILE_LINKED ou PROFILE_EMBEDDED.
bV5ProfileSize
Tamanho, em bytes, de dados de perfil inseridos.
bV5Reserved
Este membro foi reservado. Seu valor deve ser definido como zero.
Comentários
Se bV5Height for negativo, indicando um DIB de cima para baixo, bV5Compression deverá ser BI_RGB ou BI_BITFIELDS. DiBs de cima para baixo não podem ser compactados.
A interface de Gerenciamento Independente de Cores (ICM) 2.0 permite que os perfis de cores do ICC (International Color Consortium) sejam vinculados ou inseridos em DIBs (DIBs). Consulte Usando estruturas para obter mais informações.
Quando um DIB é carregado na memória, os dados de perfil (se estiverem presentes) devem seguir a tabela de cores e o bV5ProfileData deve fornecer o deslocamento dos dados de perfil desde o início da estrutura de BITMAPV5HEADER . O valor armazenado em bV5ProfileData será diferente do valor retornado pelo operador sizeof dado o argumento BITMAPV5HEADER , pois bV5ProfileData é o deslocamento em bytes desde o início da estrutura BITMAPV5HEADER até o início dos dados de perfil. (Bits de bitmap não seguem a tabela de cores na memória). Os aplicativos devem modificar o membro bV5ProfileData depois de carregar o DIB na memória.
Para DIBs empacotados, os dados de perfil devem seguir os bits de bitmap semelhantes ao formato de arquivo. O membro bV5ProfileData ainda deve fornecer o deslocamento dos dados de perfil desde o início do BITMAPV5HEADER.
Os aplicativos devem acessar os dados de perfil somente quando bV5Size for igual ao tamanho do BITMAPV5HEADER e bV5CSType for igual a PROFILE_EMBEDDED ou PROFILE_LINKED.
Se um perfil estiver vinculado, o caminho do perfil poderá ser qualquer nome totalmente qualificado (incluindo um caminho de rede) que possa ser aberto usando a função CreateFile .
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) |