Compartilhar via


sRGB: um espaço de cores padrão

Como resultado de considerações de largura de banda da Internet, Hewlett-Packard e a Microsoft propuseram a adoção de um espaço de cor predefinido padrão conhecido como sRGB (IEC 61966-2-1), de modo a permitir o mapeamento de cores preciso com muito pouca sobrecarga de dados.

Uma versão de arquivo de ajuda de um white paper que discute os detalhes técnicos do sRGB, sRGB.hlp, está disponível na pasta \Help da Referência do Programador do WCS 1.0.

Diferentes formatos de arquivo podem usar ou adicionar um sinalizador para especificar que a imagem está no espaço de cores sRGB. No formato DIB (bitmap independente de dispositivo) do Windows, definir o membro bV5CSType da estrutura BITMAPV5HEADER como LCS_sRGB especifica que as cores DIB estão no espaço de cor sRGB.

O WCS 1.0 fornece suporte nativo para sRGB. Há duas maneiras de usar o WCS 1.0 para renderizar uma imagem definida no espaço de cor sRGB:

Para renderizar uma imagem dentro do contexto do dispositivo

  1. Crie um DC (contexto de dispositivo) no dispositivo de exibição.
  2. Defina o gerenciamento de cores usando a função SetICMMode .
  3. Use a função SetDIBitsToDevice para transferir o DIB para o DC. Desde que o membro bV5CSMType da estrutura DIBs BITMAPV5HEADER esteja definido como LCS_sRGB, o sistema executará o gerenciamento de cores apropriado.

Para renderizar uma imagem fora do contexto do dispositivo

  1. Crie uma transformação usando CreateColorTransformW. O membro lcsCSType da estrutura LOGCOLORSPACE apontada pelo parâmetro pLogColorSpace deve ser definido como LCS_sRGB. O parâmetro hDestProfile indica o espaço de cor do dispositivo de exibição.
  2. Use a transformação de cor criada para que a cor corresponda à imagem antes de exibi-la no dispositivo.

Padrões do WCS 1.0 para espaço de cor de entrada e perfil de saída

Quando nenhum espaço de cor de entrada é especificado, por padrão, o WCS 1.0 usa o espaço de cor sRGB como o espaço de cor de entrada para mapeamento de cores.

Quando nenhum perfil de saída é especificado, mas um dispositivo padrão é especificado, o WCS 1.0 seleciona um perfil de saída padrão. Se o dispositivo padrão não tiver um perfil associado, o WCS 1.0 usará o espaço de cor sRGB como o perfil de saída.

A tabela a seguir mostra as transformações de cor resultantes quando um dispositivo padrão não está disponível.

  Perfil de saída especificado Perfil de saída não especificado
Espaço de cor de entrada especificado A transformação usa os perfis especificados. Transformar converte de espaço de cor de entrada conhecido em sRGB.
Espaço de cor de entrada não especificado Transform converte de sRGB para perfil de saída conhecido. A transformação de sRGB para sRGB é assumida; nada é feito.

 

Perfis sRGB e Embedded

A partir da versão 2.0 do ICM, os aplicativos que utilizam o WCS podem inserir perfis em imagens. Os perfis inseridos ajudam os aplicativos dos usuários a manter uma aparência de cor consistente, mesmo que as imagens sejam transmitidas pela Internet.

As imagens que usam o espaço de cor sRGB não precisam de um perfil de cor inserido. Como não têm nenhum perfil inserido, as imagens baseadas em sRGB são menores e mais facilmente transferíveis entre canais de dados com largura de banda limitada.

Os aplicativos devem definir o sinalizador LCS_sRGB no cabeçalho bitmap da imagem para indicar que a imagem usa o espaço de cor sRGB. Para obter detalhes, consulte Estruturas de cabeçalho bitmap do Windows e LOGCOLORSPACE.