Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A maioria das estruturas usadas pelo WCS 1.0 são muito simples e requerem pouca explicação. Eles estão documentados na seção de referência WCS 1.0 intitulada Structures.
As exceções são a estrutura COLORMATCHSETUPW usada pela função SetupColorMatchingW e as seguintes estruturas do Windows definidas em Wingdi.h:
São debatidos mais pormenorizadamente os seguintes temas:
- Estruturas de cabeçalho de bitmap do Windows
- diferenças entre cabeçalhos V4 e V5
- Bitmap.exe: um utilitário Command-Line para converter cabeçalhos de bitmap
Estruturas de cabeçalho de bitmap do Windows
O WCS 1.0 permite que perfis de cores ICC sejam vinculados ou incorporados em bitmaps independentes de dispositivo (DIBs). Isso permite que as cores DIB sejam caracterizadas com mais precisão do que era possível usando WCS no Windows 95. BITMAPV5HEADER , a nova estrutura de cabeçalho de bitmap, é definida em Wingdi.h na versão do Windows 98. Para fins de desenvolvimento, também está incluído no ficheiro Icm.h com este Manual de Referência do Programador. A estrutura BITMAPV5HEADER é a seguinte:
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; // Rendering intent for bitmap
DWORD bV5ProfileData; // Offset to profile data
DWORD bV5ProfileSize; // Size of embedded profile data
DWORD bV5Reserved; // Should be zero
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
O membro bV5CSType pode ter os valores PROFILE_EMBEDDED ou PROFILE_LINKED para especificar se um perfil está incorporado ou vinculado ao DIB. O membro bV5ProfileData é o offset em bytes desde o início da estrutura BITMAPV5HEADER até o início dos dados de perfil. Se o perfil estiver incorporado, os dados do perfil serão o perfil real e, se estiverem vinculados, os dados do perfil serão o nome de arquivo terminado nulo do perfil. Isso não pode ser uma cadeia de caracteres Unicode. Ele deve ser composto exclusivamente de caracteres do conjunto de caracteres do Windows (página de código 1252).
Quando um DIB é carregado na memória, os dados de perfil (se presentes) devem seguir a tabela de cores, e bV5ProfileData deve fornecer o deslocamento dos dados de perfil desde o início da estrutura BITMAPV5HEADER. O valor desse membro será diferente agora, pois os bits de bitmap não seguem a tabela de cores na memória. As aplicações devem modificar o membro bV5ProfileData depois de o DIB ser carregado na memória.
Para DIBs compactados, 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 do perfil desde o início da estrutura BITMAPV5HEADER.
Os aplicativos devem acessar os dados de perfil somente quando bV5Size == tamanho de ( BITMAPV5HEADER ) ANDbV5CSType estiver PROFILE_EMBEDDED ou PROFILE_LINKED.
Se um perfil estiver vinculado, o caminho do perfil pode ser qualquer nome totalmente qualificado (incluindo um caminho de rede) que pode ser aberto usando a função Win32 CreateFile.
Diferenças entre cabeçalhos V4 e V5
Ao trabalhar com a nova estrutura de bitmap, é útil reconhecer diferenças na forma como BITMAPV4HEADER e BITMAPV5HEADER estruturas são configuradas:
| Cabeçalho V4 | Significado |
|---|---|
| bV4CSType | LCS_CALIBRADO_RGB Este valor implica que os pontos finais e as gamas são dados nos campos apropriados. Valores falsos causam problemas. |
| bV4CSType | LCS_sRGB. Esse valor implica que o bitmap está no espaço de cores sRGB (gamas e pontos de extremidade ignorados). |
| bV4CSType | LCS_WINDOWS_COLOR_SPACE. Esse valor implica que o bitmap está no espaço de cores padrão do Windows. |
| Cabeçalho V5 | Significado |
|---|---|
| bV5CSType | LCS_CALIBRATED_RGB. Este valor implica que os pontos finais e as gamas são dados nos campos apropriados. Valores falsos causam problemas. |
| bV5CSType | LCS_sRGB. Esse valor implica que o bitmap está no espaço de cores sRGB (gamas e pontos de extremidade ignorados). |
| bV5CSType | PROFILE_EMBEDDED. Esse valor implica que bV5ProfileData aponta para um buffer de memória que contém o perfil a ser usado (gamas e pontos de extremidade são ignorados). |
| bV5CSType | PERFIL_LIGADO Esse valor implica que bV5ProfileData aponta para o nome do arquivo do perfil a ser usado (gamas e pontos de extremidade são ignorados). |
| bV5CSType | LCS_WINDOWS_COLOR_SPACE. Esse valor implica que o bitmap está no espaço de cores padrão do Windows. |
Para converter bitmaps mais antigos de e para a nova estrutura BITMAPV5HEADER, um arquivo utilitário de conversão de linha de comando chamado Bitmap.exe está incluído na Referência do programador WCS 1.0.
BitMap.exe: um utilitário Command-Line para converter cabeçalhos de bitmap
Bitmap.exe é um utilitário de linha de comando localizado na pasta \Bin na pasta de instalação que você especificou. Ele modifica os cabeçalhos de bitmaps do Windows, permitindo que você converta bitmaps existentes das estruturas de cabeçalho BITMAPINFOHEADER e BITMAPV4HEADER para a mais recente estrutura de cabeçalho BITMAPV5HEADER e vice-versa. A sintaxe da linha de comando é a seguinte:
BITMAP [/d] [/1|4|5] [/s] [/f]
filename
As opções de linha de comando têm os seguintes efeitos.
| Trocar | Significado |
|---|---|
| /d | Os valores padrão são inseridos automaticamente nos cabeçalhos convertidos. |
| /1 | Converter os bitmaps especificados em BITMAPINFOHEADER |
| /4 | Converter os bitmaps especificados para BITMAPV4HEADER |
| /5 | Converter os bitmaps especificados para BITMAPV5HEADER |
| /f | Força a conversão, mesmo que o bitmap já tenha o cabeçalho certo |
| /s | Converte bitmaps na pasta especificada e todos os subdiretórios sob ela |