Compartilhar via


Visão geral dos formatos de pixel nativos

Este tópico apresenta os formatos de pixel fornecidos pelo Windows Imaging Component (WIC).

Um formato de pixel descreve o layout de memória de cada pixel em um bitmap. Este layout de memória descreve como os dados de imagem de um bitmap são codificados especificando o formato numérico e a organização do canal de cores. O WIC dá suporte a vários formatos numéricos para vários esquemas de organização de canal de cores, fornecendo uma ampla gama de formatos de pixel.

Profundidade de bits

A intensidade de bits é o número de bits usados para codificar cada canal de cor. Hoje, a maioria das imagens digitais usa uma intensidade de bits de 8, o que significa que cada canal de cores em um pixel é representado por 8 bits, fornecendo 2⁸ (256) valores exclusivos por canal. Uma imagem que tem uma intensidade de bits de 8 e três canais de cor (como vermelho, verde e azul) usa 24 bits por pixel (bpp), o que fornece 2²⁴ (16.777.216) cores diferentes por pixel.

Para uma melhor resolução de cores, é possível usar uma intensidade de bits de 16 ou 32. Isso fornece a cada canal de cores 2¹⁶ (65.536) ou 2³² valores exclusivos, a um custo de mais memória por pixel.

Em alguns formatos, a intensidade de bits não é um múltiplo de 8. Esses formatos são chamados de formatos empacotados, pois os canais de cor em um pixel não estão alinhados aos limites de bytes. Por exemplo, se a intensidade de bits é 5, três canais de cor podem ser armazenados em 16 bits (incluindo 1 bit de preenchimento, para alinhar os pixels aos bytes). Formatos empacotados são úteis quando a memória ou a capacidade de processamento são limitadas.

Codificação numérica

Para a maioria das imagens digitais de hoje, bytes não assinados e inteiros curtos sem sinal são usados para descrever o intervalo numérico de cada canal de cor. O valor mínimo (0) representa intensidade zero em um único canal de cor, e o preto é obtido quando todos os canais de cor são zero. Da mesma forma, o valor máximo representa a intensidade total e o branco é alcançado quando todos os canais de cores estão em intensidade total. Com uma intensidade de bits de 8, um UINT fornece 256 valores exclusivos por canal de cores (0 a 255). Um UINT de 16 bits fornece 65.536 valores exclusivos por canal de cor (0 a 65.535).

Além disso, o WIC dá suporte a formatos de ponto fixo e ponto flutuante. Esses formatos dão suporte a intervalos dinâmicos maiores, pois todo o intervalo numérico de cada canal de cor é maior que o intervalo visível. Como resultado, as cores podem ser ajustadas acima ou abaixo do intervalo visível, durante as etapas intermediárias do processamento de imagens, sem perda de informações de imagem.

Codificação numérica de ponto fixo

Os valores de ponto fixo de 16 bits são interpretados como s2.13: bit de sinal, dois bits inteiros e treze bits fracionários. Usando essa interpretação, um intervalo numérico de -4.0 a +3.999... pode ser representado, com o valor de 1.0 representado pelo valor inteiro com sinal 8192 (0x2000).

Os valores de ponto fixo de 32 bits são interpretados como s7.24: bit de sinal, sete bits inteiros e vinte e quatro bits fracionários. Usando essa interpretação, um intervalo numérico de -128,0 a +127,999... pode ser representado, com o valor de 1.0 representado pelo valor inteiro com sinal 16777216 (0x01000000).

Canais de cor

Os canais de cor de um formato de pixel definem o layout de memória de cada cor dentro dos dados de imagem de um bitmap. Há uma variedade de diferentes estruturas de canal de cor comuns nas imagens digitais de hoje, e o WIC fornece suporte para muitas delas.

Modelo de cores RGB/BGR

Os formatos RGB e BGR descrevem cores em um modelo de cores aditivo. O método mais comum de descrever uma imagem é com três canais de cor separados que representam as cores vermelho (R), verde (G) e azul (B). O WIC fornece suporte para esses três canais na ordem vermelho-verde-azul (RGB) ou azul-verde-vermelho (BGR). Essa é a ordem na qual cada canal de cor aparece dentro do fluxo de bits sequencial. Por exemplo, no formato GUID_WICPixelFormat32bppRGB, cada pixel tem 32 bits de largura. O canal vermelho é o primeiro byte (menos significativo) na memória, seguido de verde e, em seguida, azul. Por outro lado, no formato GUID_WICPixelFormat32bppBGR, os canais de cor estão na ordem oposta. O WIC dá suporte a vários formatos RGB/BGR, incluindo formatos especiais de bits empacotados, como GUID_WICPixelFormat16bppBGR555.

Observação

Os canais de cor dos formatos especiais de bits empacotados no BGR não estão em múltiplos de 8, como os canais de cor em formatos de pixel típicos. Isso significa que os valores de canal não são alinhados por bytes. É necessário ter cuidado ao ler canais de cor de bits empacotados.

Além dos formatos RGB e BGR, o WIC também fornece formatos de pixel RGB e BGR que dão suporte a um canal alfa (A). O canal alfa fornece dados de opacidade para o pixel. Para formatos com um canal alfa adicionado, o canal alfa geralmente é o último na ordem de canal de cor. Por exemplo, no formato de pixel GUID_WICPixelFormat32bppBGRA, a ordem de bytes é azul, verde e vermelho, seguida pelo canal alfa.

O WIC também dá suporte a formatos de pixel alfa RGB pré-multiplicados (P). Em um formato de pixel RGBA típico, os valores de cor vermelho, verde e azul são os valores reais de cor da imagem. Para criar uma imagem composta no formato RGBA padrão, o valor alfa da imagem em primeiro plano deve ser multiplicado por cada um dos canais vermelho, verde e azul antes de adicioná-la à cor da imagem de plano de fundo. Em um formato de pixel RGB alfa pré-multiplicado, cada canal de cor já foi multiplicado pelo valor alfa. Isso fornece um método mais eficiente de composição de imagem com dados de canal alfa. Para recuperar os valores de cor verdadeiros de cada canal em um formato de pixel PRGBA/PBGRA, a multiplicação de canal alfa deve ser revertida dividindo valores de cor pelo valor alfa.

Modelo de cores CMYK

O CMYK é um modelo de cor subtrativo usado em impressão. As cores produzidas por um modelo CMYK são geradas pela luz que não é absorvida, mas refletida. O CMYK é um modelo de quatro canais de ciano (C), magenta (M), amarelo (Y) e preto (K). Quando todos os quatro canais de cor estão no valor máximo, o resultado é preto. Assim como os modelos de cor RGB/BGR, a ordem de bytes dentro do fluxo de bits sequencial é fornecida pelo nome do formato de pixel. Por exemplo, no formato de pixel GUID_WICPixelFormat32bppCMYK, cada pixel é composto por 32 bits. O primeiro byte contém o valor ciano, seguido por magenta, amarelo e preto. O WIC fornece formatos de pixel para CMYK a 32 e 64 bits por pixel (bpp).

Além do modelo de cores CMYK padrão, o WIC também fornece CMYK com alfa. Isso permite que as imagens do CMYK tenham dados de combinação alfa semelhantes ao modelo de cores RGB/BGR. O canal alfa está localizado imediatamente após o preto no fluxo de bits sequencial de um bitmap.

Modelo de cores n-channel

Para flexibilidade, o WIC também fornece formatos de pixel que não têm uma ordem de canal predefinida. O WIC fornece formatos de pixel que dão suporte a entre três a oito canais de dados de imagem contínua em intensidades de bits de 8 e 16. Ao contrário dos formatos de pixel RGB/BGR e CMYK, os formatos n-channel não especificam a ordem do canal, mas sim o número de canais de cor disponíveis. Por exemplo, no formato de pixel GUID_WICPixelFormat32bpp4Channels, cada pixel é composto por 32 bits com cada um dos quatro canais ocupando um único byte.

O WIC também fornece formatos de pixel para n-channel com alfa. Isso permite que as imagens de n-channel tenham dados de combinação alfa semelhantes aos modelos de cores RGB/BGR e CMYK. O canal alfa está localizado imediatamente após o último canal de cor no fluxo de bits sequencial de um bitmap.

Modelos de cores indexados e em escala de cinza

Os formatos indexados usam uma tabela de cores, chamada de paleta. A paleta é armazenada externamente nos dados de pixel ou definida implicitamente. O valor de cada pixel na imagem é um índice na paleta. Com um formato indexado, o número de bits por pixel está diretamente relacionado ao número de entradas na paleta. Isso reduz significativamente a quantidade de dados necessários para representar a imagem, mas também restringe o número de cores disponíveis para a imagem. O WIC dá suporte a formatos indexados com 1, 2, 4 ou 8 bpp.

Para formatos monocromáticos (escala de cinza), o WIC dá suporte a 1, 2, 4, 8, 16 e 32 bits por pixel. Para intensidades de bits de 1, 8, 16 e 32, os dados de cor são armazenados em um único canal. Para intensidades de bits de 2 ou 4, os pixels são índices em uma paleta de escala de cinza.

Modelo de cores Y'CbCr

O WIC adiciona suporte para o modelo de cores JFIF Y'CbCr JPEG. O Y'CbCr separa cores em um componente luma (Y') e dois componentes croma (Cb e Cr). Muitos arquivos JPEG armazenam dados de imagem nativamente usando o modelo de cores Y'CbCr.

O sistema visual humano é menos sensível às alterações no croma do que no luma, e os formatos Y'CbCr podem aproveitar essa sensibilidade reduzida reduzindo a quantidade de dados de croma armazenados em relação ao luma. Eles fazem isso armazenando croma e luma em planos separados e dimensionando cada plano de componente para uma resolução diferente. Essa prática é conhecida como subamostragem de croma.

Como os dados de croma e luma são armazenados separadamente e podem ter resoluções diferentes, o WIC define formatos de pixel luma e croma separados. O WIC dá suporte a dados de 8 bits por canal.

Formato de pixel do WIC

Os formatos de pixel no WIC são definidos usando GUIDs para evitar conflitos com IHVs. O WIC fornece um nome amigável para fazer referência ao GUID de um formato de pixel nativo. A convenção de nomenclatura para os formatos de pixel do WIC é a seguinte:

[GUID_WICPixelFormat][Bits por pixel][Ordem do canal][Tipo de armazenamento]

Componente de formato Descrição
GUID_WICPixelFormat A identificação descritiva para todos os formatos de pixel do WIC. O nome amigável para todos os pixels do WIC começa com esta cadeia de caracteres.
Bits por pixel O número de bits por pixel (bpp) usado para o formato de pixel.
Ordem do canal O modelo de canal de cor e a ordem de cada canal para o formato.
Tipo de armazenamento A codificação numérica usada para o formato de pixel. A codificação padrão é um inteiro sem sinal. Se nada seguir as informações do modelo de cor, um inteiro sem sinal (UINT) estará implícito. FixedPoint e Float são usados para identificar formatos de pixel que usam codificação de ponto fixo e ponto flutuante, respectivamente.

Observação

Para formatos n-channel, a [Ordem do canal] não especifica a ordem de cores, mas sim o número de canais disponíveis. Por exemplo, GUID_WICPixelFormat24bpp3Channels fornece três canais de cor em que "3Channels" é a entrada [Ordem do Canal], mas indica apenas o número de canais e não a ordem.

Por exemplo, o nome amigável GUID_WICPixelFormat24bppRGB significa que o formato de pixel usa 24 bits por pixel e o modelo de cores RGB. Como o nome não identifica explicitamente um tipo de armazenamento, um inteiro sem sinal está implícito.

O WIC dá suporte a vários formatos de pixel. As tabelas a seguir agrupam formatos de pixel semelhantes por estrutura de cores, fornecendo informações adicionais, como intensidade de bits, bits por pixel e codificação numérica. Cada tabela contém as seguintes informações:

  • Nome amigável. O nome amigável do formato de pixel.
  • Contagem de canais. O número de canais de cor.
  • Bits por canal. O número de bits por canal (intensidade de bits).
  • Bits por pixel. O número de bits por pixel, incluindo os bits de preenchimento.
  • Tipo de armazenamento. A codificação numérica dos dados da imagem. Esse valor pode ser um inteiro sem sinal (UINT), um número de ponto fixo (FixedPoint) ou um número de ponto flutuante (Float).

Observação

Para maior clareza, este documento refere-se a formatos de pixel apenas por seus nomes amigáveis. O valor hexadecimal real para os formatos de pixel pode ser encontrado nos arquivos wincodec.h/idl.

Formatos de pixel indefinidos

A lista a seguir mostra formatos de pixel genéricos que são usados quando o formato de pixel é indefinido ou não é importante para uma operação de imagem.

  • GUID_WICPixelFormatUndefined
  • GUID_WICPixelFormatDontCare

Formatos de pixel indexados

A tabela a seguir lista os formatos de pixel indexados fornecidos pelo WIC. Nesses formatos, o valor de cada pixel é um índice em uma paleta de cores.

Nome Amigável Contagem de canais Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat1bppIndexed 1 1 UINT
GUID_WICPixelFormat2bppIndexed 1 2 UINT
GUID_WICPixelFormat4bppIndexed 1 4 UINT
GUID_WICPixelFormat8bppIndexed 1 8 UINT

Formatos de pixel de bits empacotados

A tabela a seguir lista os formatos de bits empacotados fornecidos pelo WIC. Nesses formatos, os dados do canal de cor não são alinhados por bytes.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat16bppBGR555 3 5 16 UINT
GUID_WICPixelFormat16bppBGR565 3 5(B)/6(G)/5(R) 16 UINT
GUID_WICPixelFormat16bppBGRA555 4 5(B)/5(G)/5(R)/1(A) 16 UINT
GUID_WICPixelFormat32bppBGR101010 3 10 32 UINT
GUID_WICPixelFormat32bppRGBA1010102 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppRGBA1010102XR 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2 4 10(R)/10(G)/10(B)/2(A) 32 UINT
GUID_WICPixelFormat32bppR10G10B10A2HDR10 4 10(R)/10(G)/10(B)/2(A) 32 UINT

Para os formatos GUID_WICPixelFormat32bppBGR101010 e GUID_WICPixelFormat32bppRGBA1010102, o canal vermelho é armazenado nos bits menos significativos. Para os formatos GUID_WICPixelFormat32bppR10G10B10A2 e GUID_WICPixelFormat32bppR10G10B10A2HDR10, o canal vermelho é definido nos bits mais significativos, com o mesmo layout que DXGI_FORMAT_R10G10B10A2_UNORM.

O formato GUID_WICPixelFormat32bppR10G10B10A2HDR10 é o formato de pixel de 10 bits para HDR10 (espaço em cores BT.2020 e EOTF SMPTE ST.2084).

Formatos de pixel de escala de cinza

A tabela a seguir lista os formatos de escala de cinza fornecidos pelo WIC. Nesses formatos, os dados de cor representam tons de cinza.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormatBlackWhite 1 1 1 UINT
GUID_WICPixelFormat2bppGray 1 2 2 UINT
GUID_WICPixelFormat4bppGray 1 4 4 UINT
GUID_WICPixelFormat8bppGray 1 8 8 UINT
GUID_WICPixelFormat16bppGray 1 16 16 UINT
GUID_WICPixelFormat16bppGrayFixedPoint 1 16 16 FixedPoint
GUID_WICPixelFormat16bppGrayHalf 1 16 16 Float
GUID_WICPixelFormat32bppGrayFloat 1 32 32 Float
GUID_WICPixelFormat32bppGrayFixedPoint 1 32 32 FixedPoint

Formatos de pixel RGB/BGR

A tabela a seguir lista os formatos RGB/BGR fornecidos pelo WIC. Esses formatos separam os dados de cor primária nos canais vermelho (R), verde (G) e azul (B). Um canal alfa (A) adicional é fornecido para informações de opacidade em alguns formatos.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat24bppRGB 3 8 24 UINT
GUID_WICPixelFormat24bppBGR 3 8 24 UINT
GUID_WICPixelFormat32bppBGR 3 8 32 UINT
GUID_WICPixelFormat32bppRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppBGRA 4 8 32 UINT
GUID_WICPixelFormat32bppRGBE* 4 8 32 Float
GUID_WICPixelFormat32bppPRGBA 4 8 32 UINT
GUID_WICPixelFormat32bppPBGRA 4 8 32 UINT
GUID_WICPixelFormat48bppRGB 3 16 48 UINT
GUID_WICPixelFormat48bppBGR 3 16 48 UINT
GUID_WICPixelFormat48bppRGBFixedPoint 3 16 48 Fixo
GUID_WICPixelFormat48bppBGRFixedPoint 3 16 48 Fixo
GUID_WICPixelFormat48bppRGBHalf 3 16 48 Float
GUID_WICPixelFormat64bppRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppPRGBA 4 16 64 UINT
GUID_WICPixelFormat64bppPBGRA 4 16 64 UINT
GUID_WICPixelFormat64bppRGBFixedPoint 3 16 64 Fixo
GUID_WICPixelFormat64bppRGBAFixedPoint 4 16 64 Fixo
GUID_WICPixelFormat64bppBGRAFixedPoint 4 16 64 Fixo
GUID_WICPixelFormat64bppRGBHalf 3 16 64 Float
GUID_WICPixelFormat64bppRGBAHalf 4 16 64 Float
GUID_WICPixelFormat96bppRGBFixedPoint 3 32 96 Fixo
GUID_WICPixelFormat128bppRGBFloat 3 32 128 Float
GUID_WICPixelFormat128bppRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppPRGBAFloat 4 32 128 Float
GUID_WICPixelFormat128bppRGBFixedPoint 3 32 128 Fixo
GUID_WICPixelFormat128bppRGBAFixedPoint 4 32 128 Fixo

Observação

*O formato GUID_WICPixelFormat32bppRGBE codifica três valores de ponto flutuante de 16 bits em 4 bytes, da seguinte maneira: três mantissas de 8 bits sem sinal para os canais R, G e B, além de um expoente compartilhado de 8 bits. Esse formato fornece precisão de ponto flutuante de 16 bits em uma representação de pixel menor.

A partir do Windows 8 e da Atualização de plataforma para Windows 7, o WIC fornece formatos adicionais, mostrados na tabela aqui.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat32bppRGB 3 8 32 UINT
GUID_WICPixelFormat64bppRGB 3 16 64 UINT
GUID_WICPixelFormat96bppRGBFloat 3 32 96 FLOAT
GUID_WICPixelFormat64bppPRGBAHalf 4 16 64 FLOAT

Formatos de pixel CMYK

A tabela a seguir lista os formatos CMYK fornecidos pelo WIC. Esses formatos separam os dados de cor primária nos canais ciano (C), magenta (M), amarelo (Y) e preto (K).

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat32bppCMYK 4 8 32 UINT
GUID_WICPixelFormat64bppCMYK 4 16 64 UINT
GUID_WICPixelFormat40bppCMYKAlpha 5 8 40 UINT
GUID_WICPixelFormat80bppCMYKAlpha 5 16 80 UINT

Formatos de pixel n-channel

A tabela a seguir lista os formatos n-channel fornecidos pelo WIC. Esses formatos fornecem vários canais de cor indefinidos para armazenar dados de imagem.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat24bpp3Channels 3 8 24 UINT
GUID_WICPixelFormat48bpp3Channels 3 16 48 UINT
GUID_WICPixelFormat32bpp3ChannelsAlpha 4 8 32 UINT
GUID_WICPixelFormat64bpp3ChannelsAlpha 4 16 64 UINT
GUID_WICPixelFormat32bpp4Channels 4 8 32 UINT
GUID_WICPixelFormat64bpp4Channels 4 16 64 UINT
GUID_WICPixelFormat40bpp4ChannelsAlpha 5 8 40 UINT
GUID_WICPixelFormat80bpp4ChannelsAlpha 5 16 80 UINT
GUID_WICPixelFormat40bpp5Channels 5 8 40 UINT
GUID_WICPixelFormat80bpp5Channels 5 16 80 UINT
GUID_WICPixelFormat48bpp5ChannelsAlpha 6 8 48 UINT
GUID_WICPixelFormat96bpp5ChannelsAlpha 6 16 96 UINT
GUID_WICPixelFormat48bpp6Channels 6 8 48 UINT
GUID_WICPixelFormat96bpp6Channels 6 16 96 UINT
GUID_WICPixelFormat56bpp6ChannelsAlpha 7 8 56 UINT
GUID_WICPixelFormat112bpp6ChannelsAlpha 7 16 112 UINT
GUID_WICPixelFormat56bpp7Channels 7 8 56 UINT
GUID_WICPixelFormat112bpp7Channels 7 16 112 UINT
GUID_WICPixelFormat64bpp7ChannelsAlpha 8 8 64 UINT
GUID_WICPixelFormat128bpp7ChannelsAlpha 8 16 128 UINT
GUID_WICPixelFormat64bpp8Channels 8 8 64 UINT
GUID_WICPixelFormat128bpp8Channels 8 16 128 UINT
GUID_WICPixelFormat72bpp8ChannelsAlpha 9 8 72 UINT
GUID_WICPixelFormat144bpp8ChannelsAlpha 9 16 144 UINT

Formatos de pixel somente alfa

A tabela a seguir lista os formatos somente alfa fornecidos pelo WIC. Este formato contém apenas informações alfa.

Nome Amigável Contagem de canais Bits por canal Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat8bppAlpha 1 8 32 UINT

Formatos de pixel Y'CbCr

A tabela a seguir lista os formatos Y'CbCr fornecidos pelo WIC. Estes formatos separam os dados de cor primária em luma (Y), diferença de croma azul (Cb) e diferença de croma vermelho (Cr). Observe que esses formatos foram projetados para armazenar dados de pixel JFIF Y'CbCr JPEG.

Nome Amigável Contagem de canais Bits por Pixel Tipo de armazenamento
GUID_WICPixelFormat8bppY 1 8 UINT
GUID_WICPixelFormat8bppCb 1 8 UINT
GUID_WICPixelFormat8bppCr 1 8 UINT
GUID_WICPixelFormat16bppCbCr 2 16 UINT

Espaço de cor

Os formatos de pixel em si não têm um espaço de cor. Geralmente, o espaço de cor é uma interpretação semântica dos valores de pixel que depende do contexto do bitmap. Algumas imagens identificam um contexto de cor que define o espaço de cor da imagem. Somente na ausência de um contexto de cor o espaço de cor deve ser inferido.

As informações de contexto de cor são definidas pela interface IWICColorContext para WIC. Para recuperar as informações de contexto de cor de um quadro de imagem, use o método GetColorContext.

Na ausência de informações de espaço de cor para uma imagem, a regra geral para inferência de espaço de cor é que os formatos UINT RGB e escala de cinza usam o espaço de cor RGB padrão (sRGB), enquanto os formatos RGB de ponto fixo e ponto flutuante e escala de cinza usam o espaço de cor RGB estendido (scRGB). O modelo de cor CMYK usa um espaço de cor RWOP.

Formatos de imagem nativos

Cada um dos codecs do WIC fornecidos pelo Windows dá suporte a um subconjunto dos formatos de pixel do WIC. Para cada codec, os formatos de decodificação com suporte podem ser diferentes dos formatos de codificação com suporte.

Ao decodificar uma imagem, se os dados forem armazenados nativamente em um formato de pixel sem suporte do decodificador, eles serão convertidos em um formato com suporte. Para determinar o formato de pixel de saída, chame IWICBitmapFrameDecode::GetPixelFormat.

Ao codificar uma imagem, use IWICBitmapFrameEncode::SetPixelFormat para solicitar que o codificador use um formato de pixel específico. O codificador retornará o formato de pixel com suporte mais próximo, que pode ser diferente do que foi solicitado.

As tabelas a seguir mostram os formatos de pixel compatíveis com cada um dos codecs WIC fornecidos pelo Windows.

Codec nativo de BMP

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppBGR565 GUID_WICPixelFormat16bppBGR565
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA* GUID_WICPixelFormat32bppBGRA*
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat32bppPBGRA
GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat64bppBGRAFixedPoint

Observação

GUID_WICPixelFormat32bppBGRA tem suporte no Windows 8 e na Atualização de plataforma para Windows 7 e superior.

  • Para codificar para esse formato, use a opção de codificador EnableV5Header32bppBGRA. O BMP será gravado com um cabeçalho BITMAPV5HEADER.
  • Se um arquivo tiver um BITMAPV5HEADER, ele será decodificado como GUID_WICPixelFormat32bppBGRA.

Codec nativo de GIF

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed

Codec nativo de ICO

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat32bppBGRA

Codec nativo de JPEG

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK

Codec nativo de PNG

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat2bppIndexed GUID_WICPixelFormat2bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat2bppGray GUID_WICPixelFormat2bppGray
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat48bppBGR
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppBGRA

Codec nativo de TIFF

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat1bppIndexed GUID_WICPixelFormat1bppIndexed
GUID_WICPixelFormat4bppIndexed GUID_WICPixelFormat4bppIndexed
GUID_WICPixelFormat8bppIndexed GUID_WICPixelFormat8bppIndexed
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat4bppGray GUID_WICPixelFormat4bppGray
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat32bppGrayFloat GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat64bppPRGBA
GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat96bppRGBFloat*
GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppPRGBAFloat

Observação

Só há suporte a GUID_ WICPixelFormat96bppRGBFloat no Windows 8, na Atualização da Plataforma Windows 7 e superior.

Codec nativo de HEIF

Formatos somente profundidade e somente ganho. Esses GUIDs de formato de pixel permitem que os visualizadores de fotos recuperem representações alternativas de uma imagem HEIF.

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat8bppDepth GUID_WICPixelFormat8bppDepth
GUID_WICPixelFormat8bppGain GUID_WICPixelFormat8bppGain

Codec nativo do JPEG XR

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormatBlackWhite GUID_WICPixelFormatBlackWhite
GUID_WICPixelFormat8bppGray GUID_WICPixelFormat8bppGray
GUID_WICPixelFormat16bppBGR555 GUID_WICPixelFormat16bppBGR555
GUID_WICPixelFormat16bppGray GUID_WICPixelFormat16bppGray
GUID_WICPixelFormat24bppBGR GUID_WICPixelFormat24bppBGR
GUID_WICPixelFormat24bppRGB GUID_WICPixelFormat24bppRGB
GUID_WICPixelFormat32bppBGR GUID_WICPixelFormat32bppBGR
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat48bppRGBFixedPoint GUID_WICPixelFormat48bppRGBFixedPoint
GUID_WICPixelFormat16bppGrayFixedPoint GUID_WICPixelFormat16bppGrayFixedPoint
GUID_WICPixelFormat32bppBGR101010 GUID_WICPixelFormat32bppBGR101010
GUID_WICPixelFormat48bppRGB GUID_WICPixelFormat48bppRGB
GUID_WICPixelFormat64bppRGBA GUID_WICPixelFormat64bppRGBA
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat96bppRGBFixedPoint
GUID_WICPixelFormat96bppRGBFixedPoint GUID_WICPixelFormat128bppRGBAFloat
GUID_WICPixelFormat128bppRGBFloat GUID_WICPixelFormat128bppRGBFloat
GUID_WICPixelFormat32bppCMYK GUID_WICPixelFormat32bppCMYK
GUID_WICPixelFormat64bppRGBAFixedPoint GUID_WICPixelFormat64bppRGBAFixedPoint
GUID_WICPixelFormat128bppRGBAFixedPoint GUID_WICPixelFormat128bppRGBAFixedPoint
GUID_WICPixelFormat64bppCMYK GUID_WICPixelFormat64bppCMYK
GUID_WICPixelFormat24bpp3Channels GUID_WICPixelFormat24bpp3Channels
GUID_WICPixelFormat32bpp4Channels GUID_WICPixelFormat32bpp4Channels
GUID_WICPixelFormat40bpp5Channels GUID_WICPixelFormat40bpp5Channels
GUID_WICPixelFormat48bpp6Channels GUID_WICPixelFormat48bpp6Channels
GUID_WICPixelFormat56bpp7Channels GUID_WICPixelFormat56bpp7Channels
GUID_WICPixelFormat64bpp8Channels GUID_WICPixelFormat64bpp8Channels
GUID_WICPixelFormat48bpp3Channels GUID_WICPixelFormat48bpp3Channels
GUID_WICPixelFormat64bpp4Channels GUID_WICPixelFormat64bpp4Channels
GUID_WICPixelFormat80bpp5Channels GUID_WICPixelFormat80bpp5Channels
GUID_WICPixelFormat96bpp6Channels GUID_WICPixelFormat96bpp6Channels
GUID_WICPixelFormat112bpp7Channels GUID_WICPixelFormat112bpp7Channels
GUID_WICPixelFormat128bpp8Channels GUID_WICPixelFormat128bpp8Channels
GUID_WICPixelFormat40bppCMYKAlpha GUID_WICPixelFormat40bppCMYKAlpha
GUID_WICPixelFormat80bppCMYKAlpha GUID_WICPixelFormat80bppCMYKAlpha
GUID_WICPixelFormat32bpp3ChannelsAlpha GUID_WICPixelFormat32bpp3ChannelsAlpha
GUID_WICPixelFormat64bpp7ChannelsAlpha GUID_WICPixelFormat40bpp4ChannelsAlpha
GUID_WICPixelFormat72bpp8ChannelsAlpha GUID_WICPixelFormat48bpp5ChannelsAlpha
GUID_WICPixelFormat64bpp3ChannelsAlpha GUID_WICPixelFormat56bpp6ChannelsAlpha
GUID_WICPixelFormat80bpp4ChannelsAlpha GUID_WICPixelFormat64bpp7ChannelsAlpha
GUID_WICPixelFormat96bpp5ChannelsAlpha GUID_WICPixelFormat72bpp8ChannelsAlpha
GUID_WICPixelFormat112bpp6ChannelsAlpha GUID_WICPixelFormat64bpp3ChannelsAlpha
GUID_WICPixelFormat128bpp7ChannelsAlpha GUID_WICPixelFormat80bpp4ChannelsAlpha
GUID_WICPixelFormat144bpp8ChannelsAlpha GUID_WICPixelFormat96bpp5ChannelsAlpha
GUID_WICPixelFormat64bppRGBAHalf GUID_WICPixelFormat112bpp6ChannelsAlpha
GUID_WICPixelFormat48bppRGBHalf GUID_WICPixelFormat128bpp7ChannelsAlpha
GUID_WICPixelFormat32bppRGBE GUID_WICPixelFormat144bpp8ChannelsAlpha
GUID_WICPixelFormat16bppGrayHalf GUID_WICPixelFormat64bppRGBAHalf
GUID_WICPixelFormat32bppGrayFixedPoint GUID_WICPixelFormat48bppRGBHalf
GUID_WICPixelFormat64bppRGBFixedPoint GUID_WICPixelFormat32bppRGBE
GUID_WICPixelFormat128bppRGBFixedPoint GUID_WICPixelFormat16bppGrayHalf
GUID_WICPixelFormat64bppRGBHalf GUID_WICPixelFormatBlackWhite

Codec nativo do DDS

Formatos de pixel do decodificador Formatos de pixel do codificador
GUID_WICPixelFormat32bppBGRA GUID_WICPixelFormat32bppBGRA
GUID_WICPixelFormat32bppPBGRA GUID_WICPixelFormat32bppPBGRA

Observação

O codec fornecido pelo Windows DDS dá suporte a arquivos DDS codificados usando os seguintes valores de DXGI_FORMAT:

  • DXGI_FORMAT_BC1_UNORM
  • DXGI_FORMAT_BC2_UNORM
  • DXGI_FORMAT_BC3_UNORM

Eles são decodificados e codificados como GUID_WICPixelFormat32bppBGRA ou GUID_WICPixelFormat32bppPBGRA. Para obter mais informações, confira a visão geral do formato DDS.

extensibilidade de formato de pixel

Formatos de imagem personalizados podem usar formatos de pixel que não são fornecidos nativamente pelo WIC, como YCbCr (YUV) e YCCK (Y/Cb/Cr/K). O WIC fornece um modelo de extensibilidade que permite que os formatos de pixel interno e de suplemento funcionem no mesmo pipeline de imagens. Para integrar esses formatos de pixel ao pipeline de imagem do WIC, você deve criar conversores de formato de pixel para converter formatos de pixel de suplemento em um ou mais dos formatos de pixel nativos. A interface principal para a criação de conversores de formato é IWICFormatConverter.

Conceitual

Visão geral do Windows Imaging Component

GUIDs e CLSIDs do WIC

Outros recursos

Como escrever um codec habilitado para o WIC

Visão geral do formato de foto HD