> ## Documentation Index
> Fetch the complete documentation index at: https://devdocs.xbox.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Windows Imaging Component (WIC) no XBOX

> Recursos disponíveis do Windows Imaging Component (WIC) no GDK do XBOX para codificar, decodificar e manipular BMP, JPG, PNG, GIF, TIFF, ICO e DDS.

Este tópico descreve os recursos do Windows Imaging Component (WIC) disponíveis no Microsoft Game Development Kit (GDK).

A maioria dos recursos do WIC está disponível para codificar, decodificar e manipular formatos de imagem comuns. Os recursos são semelhantes aos da versão ERA do WIC, com algumas melhorias em relatórios de erros e estabilidade. Os recursos do WIC no ERA e no Microsoft Game Development Kit (GDK) são ambos subconjuntos dos recursos do WIC no Windows.

Para desenvolvedores familiarizados com o WIC no Windows, este tópico fornece uma breve lista de exceções de recursos no Microsoft Game Development Kit (GDK). Para os demais desenvolvedores, consulte o conjunto completo de recursos do WIC descrito nas seções a seguir.

## Diferenças em relação ao WIC para Windows

* Suporte interno a codecs para BMP, JPG, PNG, GIF, TIFF, ICO e DDS. Não há suporte para JPEG-XR/HD Photo.
* Se você usar o formato BMP com compactação BI\_BITFIELDS, somente os formatos 16bppBGR555, 16bppBGR565 e 32bppBGRA serão compatíveis.
* Não há suporte para ciano-magenta-amarelo-preto (CMYK), alto alcance dinâmico, formatos de pixel de meia precisão (half-float), formatos de pixel de ponto fixo ou imagens com mais de quatro canais.
* Não há suporte para os formatos de pixel 32bppRGBE, 16bppYQuantizedDctCoefficients, 16bppCbQuantizedDctCoefficients e 16bppCrQuantizedDctCoefficients.
* Não há suporte para leitura ou gravação de metadados XMP nem para [Photo Metadata Policies](https://learn.microsoft.com/windows/win32/wic/photo-metadata-policies). Na transcodificação, a API tentará preservar os metadados XMP, se possível.
* Não há suporte para manipulação e conversão de espaço de cores (ou seja, IWICColorTransform).
* Não há suporte para pontos de entrada do Windows Runtime para o WIC (ou seja, métodos em Windows::Graphics::Imaging).
* Não há suporte para os métodos de interoperabilidade com GDI, GDI+ e D2D: **CreateBitmapFromHBITMAP**, **CreateBitmapFromHIcon** e **IWICImagingFactory2::CreateImageEncoder**.
* Não há suporte para **IWICPixelFormatInfo::GetColorContext**. Observe que **IWICBitmapFrameDecode::GetColorContexts** e **IWICBitmapDecoder::GetColorContexts** ainda são compatíveis.
* Há algumas diferenças entre o Direct3D no XBOX One e no Windows em relação ao WIC. Os detalhes podem ser encontrados no tópico [Criação e uso do Direct3D no XBOX One](/pt-BR/build/core-features/graphics/directx/creation-flags).

## Recursos do WIC para o Microsoft Game Development Kit (GDK)

Os principais recursos do WIC são os seguintes.

* Permite que os desenvolvedores de aplicativos executem operações de processamento de imagem em qualquer formato de imagem por meio de um conjunto único e consistente de interfaces comuns, sem exigir conhecimento prévio de formatos de imagem específicos
* Fornece uma arquitetura extensível "plug and play" para codecs de imagem, formatos de pixel e metadados, com descoberta automática de novos formatos em tempo de execução
* Oferece suporte à leitura e gravação de metadados arbitrários em arquivos de imagem, com a capacidade de preservar metadados não reconhecidos durante a edição
* Preserva dados de imagem de alta profundidade de bits, até 32 bits por canal, em todo o pipeline de processamento de imagem
* Fornece suporte interno para os formatos de imagem, formatos de pixel e esquemas de metadados mais populares

## Codecs nativos para o Microsoft Game Development Kit (GDK)

O WIC inclui vários codecs internos. A tabela a seguir mostra os codecs padrão fornecidos com a plataforma.

| Codec | Tipos MIME | Decodificadores | Codificadores |
| - | - | - | - |
| BMP (Windows Bitmap Format), especificação BMP v5. | image/bmp | Sim | Sim |
| GIF (Graphics Interchange Format 89a), especificação GIF 89a/89m | image/gif | Sim | Sim |
| ICO (Icon Format) | image/ico | Sim | Não |
| JPEG (Joint Photographic Experts Group), especificação JFIF 1.02 | image/jpeg, image/jpe, image/jpg | Sim | Sim |
| PNG (Portable Network Graphics), especificação PNG 1.2 | image/png | Sim | Sim |
| TIFF (Tagged Image File Format), especificação TIFF 6.0 | image/tiff, image/tif | Sim | Sim |
| DDS (DirectDraw Surface) | image/vnd.ms-dds | Sim | Sim |

## Interfaces do WIC para o Microsoft Game Development Kit (GDK)

| Tópico | Descrição |
| - | - |
| [IWICBitmap](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmap)<br /> | Define métodos que adicionam o conceito de capacidade de gravação e representações estáticas de bitmaps em memória a [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource). <br /> |
| [IWICBitmapClipper](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapclipper)<br /> | Expõe métodos que produzem uma versão recortada do bitmap de entrada para uma região retangular de interesse especificada.<br /> |
| [IWICBitmapCodecInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapcodecinfo)<br /> | Expõe métodos que fornecem informações sobre um codec específico.<br /> |
| [IWICBitmapDecoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapdecoder)<br /> | Expõe métodos que representam um decodificador.<br /> |
| [IWICBitmapDecoderInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapdecoderinfo)<br /> | Expõe métodos que fornecem informações sobre um decodificador.<br /> |
| [IWICBitmapEncoder](https://learn.microsoft.com/windows/win32/api/wincodec/nn-wincodec-iwicbitmapencoder)<br /> | Define métodos para definir as propriedades de um codificador, como miniaturas, quadros e paletas.<br /> |
| [IWICBitmapEncoderInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapencoderinfo)<br /> | Expõe métodos que fornecem informações sobre um codificador.<br /> |
| [IWICBitmapFlipRotator](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapfliprotator)<br /> | Expõe métodos que produzem uma fonte de bitmap invertida (horizontal ou verticalmente) e/ou girada (em incrementos de 90 graus). As rotações são feitas antes da inversão.<br /> |
| [IWICBitmapFrameDecode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapframedecode)<br /> | Define métodos para decodificar quadros de imagem individuais de um arquivo codificado.<br /> |
| [IWICBitmapFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapframeencode)<br /> | Representa os quadros de imagem individuais de um codificador.<br /> |
| [IWICBitmapLock](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmaplock)<br /> | Expõe métodos que dão suporte ao método [**Lock**](https://learn.microsoft.com/windows/win32/api/Wincodec/nf-wincodec-iwicbitmap-lock).<br /> |
| [IWICBitmapScaler](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapscaler)<br /> | Representa uma versão redimensionada do bitmap de entrada usando um algoritmo de reamostragem ou filtragem.<br /> |
| [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource)<br /> | Expõe métodos que se referem a uma fonte da qual os pixels são recuperados, mas na qual não podem ser gravados de volta.<br /> |
| [IWICBitmapSourceTransform](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsourcetransform)<br /> | Expõe métodos para transferir determinadas operações para a implementação subjacente de [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource).<br /> |
| [IWICColorContext](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwiccolorcontext)<br /> | Expõe métodos para gerenciamento de cores.<br /> |
| [IWICComponentFactory](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwiccomponentfactory)<br /> | Expõe métodos que criam componentes usados por desenvolvedores de componentes. Isso inclui leitores e gravadores de metadados e outros serviços para uso por desenvolvedores de codecs e de manipuladores de metadados.<br /> |
| [IWICComponentInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwiccomponentinfo)<br /> | Expõe métodos que fornecem informações sobre componentes.<br /> |
| [IWICDdsDecoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsdecoder)<br /> | Fornece informações e funcionalidades específicas do formato de imagem DDS.<br /> |
| [IWICDdsEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsencoder)<br /> | Permite gravar informações específicas do formato DDS em um codificador.<br /> |
| [IWICDdsFrameDecode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsframedecode)<br /> | Fornece acesso a um único quadro de dados de imagem DDS em sua forma nativa [DXGI\_FORMAT](https://learn.microsoft.com/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format), bem como informações sobre os dados da imagem.<br /> |
| [IWICEnumMetadataItem](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicenummetadataitem)<br /> | Expõe métodos que fornecem serviços de enumeração para itens de metadados individuais.<br /> |
| [IWICFastMetadataEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicfastmetadataencoder)<br /> | Expõe métodos usados para edição de metadados no local. Um codificador rápido de metadados permite adicionar e remover metadados de uma imagem sem precisar recodificar totalmente a imagem.<br /> |
| [IWICFormatConverter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicformatconverter)<br /> | Representa um [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource) que converte os dados da imagem de um formato de pixel para outro, lidando com dithering e meio-tom para formatos indexados, tradução de paleta e limiarização de alfa. <br /> |
| [IWICFormatConverterInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicformatconverterinfo)<br /> | Expõe métodos que fornecem informações sobre um conversor de formato de pixel.<br /> |
| [IWICImageEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimageencoder)<br /> | Codifica interfaces [ID2D1Image](https://learn.microsoft.com/windows/win32/api/d2d1/nn-d2d1-id2d1image) para uma interface [IWICBitmapEncoder](https://learn.microsoft.com/windows/win32/api/wincodec/nn-wincodec-iwicbitmapencoder). <br /> |
| [IWICImagingFactory](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimagingfactory)<br /> | Expõe métodos usados para criar componentes para o WIC, como decodificadores, codificadores e conversores de formato de pixel.<br /> |
| [IWICImagingFactory2](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimagingfactory2)<br /> | Uma extensão da interface de fábrica do WIC que inclui a capacidade de criar uma interface [IWICImageEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimageencoder). <br /> |
| [IWICJpegFrameDecode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicjpegframedecode)<br /> | Expõe métodos para decodificar imagens JPEG. Fornece acesso ao cabeçalho Start Of Frame (SOF), ao cabeçalho Start of Scan (SOS), às tabelas de Huffman e de quantização e aos dados JPEG compactados. Também permite a indexação para acesso aleatório eficiente. <br /> |
| [IWICJpegFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicjpegframeencode)<br /> | Expõe métodos para gravar dados de varredura JPEG compactados diretamente no fluxo de saída do codificador WIC. Também fornece acesso às tabelas de Huffman e de quantização.<br /> |
| [IWICMetadataBlockReader](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatablockreader)<br /> | Expõe métodos que fornecem acesso a todos os blocos de metadados de nível superior do codec.<br /> |
| [IWICMetadataBlockWriter](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatablockwriter)<br /> | Expõe métodos que permitem a codificação de metadados. Essa interface é implementada pelo decodificador e seus quadros de imagem.<br /> |
| [IWICMetadataHandlerInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatahandlerinfo)<br /> | Expõe métodos que fornecem informações básicas sobre o manipulador de metadados registrado.<br /> |
| [IWICMetadataQueryReader](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicmetadataqueryreader)<br /> | Expõe métodos para recuperar blocos e itens de metadados de um decodificador ou de seus quadros de imagem usando uma expressão de consulta de metadados.<br /> |
| [IWICMetadataQueryWriter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicmetadataquerywriter)<br /> | Expõe métodos para definir ou remover blocos e itens de metadados em um codificador ou em seus quadros de imagem usando uma expressão de consulta de metadados.<br /> |
| [IWICMetadataReader](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatareader)<br /> | Expõe métodos que fornecem acesso ao conteúdo de metadados subjacente. Essa interface é implementada por fornecedores independentes de software (ISVs) para criar novos leitores de metadados.<br /> |
| [IWICMetadataReaderInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatareaderinfo)<br /> | Expõe métodos que fornecem informações básicas sobre o leitor de metadados registrado.<br /> |
| [IWICMetadataWriter](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatawriter)<br /> | Expõe métodos que fornecem acesso à gravação de conteúdo de metadados. Isso é implementado por ISVs para criar novos gravadores de metadados.<br /> |
| [IWICMetadataWriterInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatawriterinfo)<br /> | Expõe métodos que fornecem informações básicas sobre o gravador de metadados registrado.<br /> |
| [IWICPalette](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpalette)<br /> | Expõe métodos para acessar e criar uma tabela de cores, principalmente para formatos de pixel indexados.<br /> |
| [IWICPersistStream](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicpersiststream)<br /> | Expõe métodos que fornecem métodos adicionais de carregamento e salvamento que recebem [WICPersistOptions](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/ne-wincodecsdk-wicpersistoptions).<br /> |
| [IWICPixelFormatInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpixelformatinfo)<br /> | Expõe métodos que fornecem informações sobre um formato de pixel.<br /> |
| [IWICPixelFormatInfo2](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpixelformatinfo2)<br /> | Estende [IWICPixelFormatInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpixelformatinfo) fornecendo informações adicionais sobre um formato de pixel.<br /> |
| [IWICPlanarBitmapFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarbitmapframeencode)<br /> | Permite que pixels de imagem de componentes planares sejam gravados em um codificador.<br /> |
| [IWICPlanarBitmapSourceTransform](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarbitmapsourcetransform)<br /> | Fornece acesso a formatos de pixel Y'CbCr planares, nos quais os componentes de pixel são armazenados em planos de componentes separados.<br /> |
| [IWICPlanarFormatConverter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarformatconverter)<br /> | Permite que um conversor de formato seja inicializado com uma fonte planar.<br /> |
| [IWICProgressiveLevelControl](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicprogressivelevelcontrol)<br /> | Expõe métodos para obter informações sobre a decodificação progressiva e controlá-la.<br /> |
| [IWICStream](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicstream)<br /> | Representa um fluxo do WIC para referenciar conteúdo de imagens e metadados.<br /> |
| [IWICStreamProvider](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicstreamprovider)<br /> | Expõe métodos para um provedor de fluxo.<br /> |

## Exemplos

Para ver exemplos de uso do WIC no Microsoft Game Development Kit (GDK), consulte os exemplos [SimpleTexture](https://github.com/microsoft/Xbox-ATG-Samples/tree/master/XDKSamples/IntroGraphics/SimpleTexture) e [xtexconv](https://github.com/microsoft/Xbox-ATG-Samples/tree/master/XDKSamples/Tools/xtexconv).

## Consulte também

[Gráficos](/pt-BR/build/core-features/graphics/gc-graphics-toc)


## Related topics

- [Gráficos no XBOX e no PC com o GDK](/pt-BR/build/core-features/graphics/index.md)
- [Diretório de tópicos NDA: links ativos do Microsoft Learn](/pt-BR/nda/nda-topic-directory.md)
- [XUserGamertagComponent](/pt-BR/reference/system/xuser/enums/xusergamertagcomponent.md)
- [Implementação do Game Saves com o GDK de outubro de 2025](/pt-BR/services/playfab/player-progression/game-saves/october-2025-gdk-changes.md)
- [D3D12_SHADER_COMPONENT_MAPPING](/pt-BR/reference/graphics/d3d12/enums/d3d12_shader_component_mapping_public.md)
