> ## 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.

# XBOX 上的 Windows 影像處理元件 (WIC)

> XBOX GDK 中可用的 Windows 影像處理元件 (WIC) 功能，用於編碼、解碼和操作 BMP、JPG、PNG、GIF、TIFF、ICO 和 DDS。

本主題說明 Microsoft Game Development Kit (GDK) 中可用的 Windows 影像處理元件 (WIC) 功能。

大部分的 WIC 功能都可用於編碼、解碼和操作常見的影像格式。這些功能與 ERA 版本的 WIC 類似，並在錯誤回報和穩定性方面有部分改進。ERA 和 Microsoft Game Development Kit (GDK) 上的 WIC 功能都是 Windows 上 WIC 功能的子集。

對於熟悉 Windows 上 WIC 的開發人員，本主題提供 Microsoft Game Development Kit (GDK) 上功能例外的簡短清單。其他開發人員請參閱後續各節所述的完整 WIC 功能集。

## 與 Windows 版 WIC 的差異

* 內建 BMP、JPG、PNG、GIF、TIFF、ICO 和 DDS 的轉碼器支援。不支援 JPEG-XR/HD Photo。
* 如果使用 BI\_BITFIELDS 壓縮的 BMP 格式，則僅支援 16bppBGR555、16bppBGR565 和 32bppBGRA 格式。
* 不支援青-洋紅-黃-黑 (CMYK)、高動態範圍、半精度浮點像素格式、定點像素格式，或超過四個通道的影像。
* 不支援 32bppRGBE、16bppYQuantizedDctCoefficients、16bppCbQuantizedDctCoefficients 和 16bppCrQuantizedDctCoefficients 像素格式。
* 不支援讀取或寫入 XMP 中繼資料或[相片中繼資料原則](https://learn.microsoft.com/windows/win32/wic/photo-metadata-policies)。在轉碼時，API 會盡可能嘗試保留 XMP 中繼資料。
* 不支援色彩空間操作和轉換 (也就是 IWICColorTransform)。
* 不支援 WIC 的 Windows 執行階段進入點 (也就是 Windows::Graphics::Imaging 下的方法)。
* 不支援 GDI、GDI+ 和 D2D Interop 方法：**CreateBitmapFromHBITMAP**、**CreateBitmapFromHIcon** 和 **IWICImagingFactory2::CreateImageEncoder**。
* 不支援 **IWICPixelFormatInfo::GetColorContext**。請注意，仍支援 **IWICBitmapFrameDecode::GetColorContexts** 和 **IWICBitmapDecoder::GetColorContexts**。
* 關於 WIC，XBOX One 上的 Direct3D 與 Windows 上的 Direct3D 之間有一些差異。詳細資料請參閱 [XBOX One 上的 Direct3D 建立和使用方式](/zh-TW/build/core-features/graphics/directx/creation-flags)主題。

## 適用於 Microsoft Game Development Kit (GDK) 的 WIC 功能

WIC 的主要功能如下。

* 讓應用程式開發人員能夠透過單一且一致的通用介面集，對任何影像格式執行影像處理作業，而不需要事先了解特定的影像格式
* 為影像轉碼器、像素格式和中繼資料提供可延伸的「隨插即用」架構，並在執行階段自動探索新格式
* 支援在影像檔中讀取和寫入任意中繼資料，並能在編輯期間保留無法辨識的中繼資料
* 在整個影像處理管線中保留高位元深度的影像資料，每個通道最多 32 位元
* 為大多數熱門影像格式、像素格式和中繼資料結構描述提供內建支援

## 適用於 Microsoft Game Development Kit (GDK) 的原生轉碼器

WIC 包含數個內建轉碼器。下表顯示平台所提供的標準轉碼器。

| 轉碼器 | MIME 類型 | 解碼器 | 編碼器 |
| - | - | - | - |
| BMP (Windows 點陣圖格式)，BMP 規格 v5。 | image/bmp | 是 | 是 |
| GIF (圖形交換格式 89a)，GIF 規格 89a/89m | image/gif | 是 | 是 |
| ICO (圖示格式) | image/ico | 是 | 否 |
| JPEG (聯合圖像專家小組)，JFIF 規格 1.02 | image/jpeg, image/jpe, image/jpg | 是 | 是 |
| PNG (可攜式網路圖形)，PNG 規格 1.2 | image/png | 是 | 是 |
| TIFF (標記影像檔案格式)，TIFF 規格 6.0 | image/tiff, image/tif | 是 | 是 |
| DDS (DirectDraw Surface) | image/vnd.ms-dds | 是 | 是 |

## 適用於 Microsoft Game Development Kit (GDK) 的 WIC 介面

| 主題 | 描述 |
| - | - |
| [IWICBitmap](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmap)<br /> | 定義為 [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 /> | 公開針對指定矩形感興趣區域產生輸入點陣圖裁剪版本的方法。<br /> |
| [IWICBitmapCodecInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapcodecinfo)<br /> | 公開提供特定轉碼器相關資訊的方法。<br /> |
| [IWICBitmapDecoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapdecoder)<br /> | 公開代表解碼器的方法。<br /> |
| [IWICBitmapDecoderInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapdecoderinfo)<br /> | 公開提供解碼器相關資訊的方法。<br /> |
| [IWICBitmapEncoder](https://learn.microsoft.com/windows/win32/api/wincodec/nn-wincodec-iwicbitmapencoder)<br /> | 定義用於設定編碼器屬性 (例如縮圖、框架和調色盤) 的方法。<br /> |
| [IWICBitmapEncoderInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapencoderinfo)<br /> | 公開提供編碼器相關資訊的方法。<br /> |
| [IWICBitmapFlipRotator](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapfliprotator)<br /> | 公開產生翻轉 (水平或垂直) 和/或旋轉 (以 90 度為增量) 之點陣圖來源的方法。旋轉會在翻轉之前執行。<br /> |
| [IWICBitmapFrameDecode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapframedecode)<br /> | 定義用於解碼已編碼檔案之個別影像框架的方法。<br /> |
| [IWICBitmapFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapframeencode)<br /> | 代表編碼器的個別影像框架。<br /> |
| [IWICBitmapLock](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmaplock)<br /> | 公開支援 [**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 /> | 代表使用重新取樣或篩選演算法調整大小後的輸入點陣圖版本。<br /> |
| [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource)<br /> | 公開參考可從中擷取像素但無法寫回之來源的方法。<br /> |
| [IWICBitmapSourceTransform](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsourcetransform)<br /> | 公開將特定作業卸載至基礎 [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 /> | 公開用於色彩管理的方法。<br /> |
| [IWICComponentFactory](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwiccomponentfactory)<br /> | 公開建立元件開發人員所用元件的方法。這包括中繼資料讀取器、寫入器，以及供轉碼器和中繼資料處理常式開發人員使用的其他服務。<br /> |
| [IWICComponentInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwiccomponentinfo)<br /> | 公開提供元件資訊的方法。<br /> |
| [IWICDdsDecoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsdecoder)<br /> | 提供 DDS 影像格式特有的資訊和功能。<br /> |
| [IWICDdsEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsencoder)<br /> | 可將 DDS 格式特有的資訊寫入編碼器。<br /> |
| [IWICDdsFrameDecode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicddsframedecode)<br /> | 提供以原生 [DXGI\_FORMAT](https://learn.microsoft.com/windows/win32/api/dxgiformat/ne-dxgiformat-dxgi_format) 形式存取單一 DDS 影像資料框架的功能，以及影像資料的相關資訊。<br /> |
| [IWICEnumMetadataItem](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicenummetadataitem)<br /> | 公開為個別中繼資料項目提供列舉服務的方法。<br /> |
| [IWICFastMetadataEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicfastmetadataencoder)<br /> | 公開用於就地編輯中繼資料的方法。快速中繼資料編碼器可讓您在影像中新增和移除中繼資料，而不需要完整重新編碼影像。<br /> |
| [IWICFormatConverter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicformatconverter)<br /> | 代表將影像資料從一種像素格式轉換為另一種像素格式的 [IWICBitmapSource](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicbitmapsource)，可處理轉為索引格式時的混色和半色調、調色盤轉譯，以及 Alpha 臨界值處理。 <br /> |
| [IWICFormatConverterInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicformatconverterinfo)<br /> | 公開提供像素格式轉換器相關資訊的方法。<br /> |
| [IWICImageEncoder](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimageencoder)<br /> | 將 [ID2D1Image](https://learn.microsoft.com/windows/win32/api/d2d1/nn-d2d1-id2d1image) 介面編碼為 [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 /> | 公開用來建立 WIC 元件 (例如解碼器、編碼器和像素格式轉換器) 的方法。<br /> |
| [IWICImagingFactory2](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicimagingfactory2)<br /> | WIC Factory 介面的延伸，包含建立 [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 /> | 公開用於解碼 JPEG 影像的方法。提供對框架起始 (SOF) 標頭、掃描起始 (SOS) 標頭、Huffman 和量化表，以及壓縮 JPEG 資料的存取。也支援建立索引，以便進行有效率的隨機存取。 <br /> |
| [IWICJpegFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicjpegframeencode)<br /> | 公開將壓縮的 JPEG 掃描資料直接寫入 WIC 編碼器輸出資料流的方法。也提供對 Huffman 和量化表的存取。<br /> |
| [IWICMetadataBlockReader](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatablockreader)<br /> | 公開提供存取轉碼器所有最上層中繼資料區塊的方法。<br /> |
| [IWICMetadataBlockWriter](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatablockwriter)<br /> | 公開啟用中繼資料編碼的方法。此介面由解碼器及其影像框架實作。<br /> |
| [IWICMetadataHandlerInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatahandlerinfo)<br /> | 公開提供已註冊中繼資料處理常式基本資訊的方法。<br /> |
| [IWICMetadataQueryReader](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicmetadataqueryreader)<br /> | 公開使用中繼資料查詢運算式，從解碼器或其影像框架擷取中繼資料區塊和項目的方法。<br /> |
| [IWICMetadataQueryWriter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicmetadataquerywriter)<br /> | 公開使用中繼資料查詢運算式，對編碼器或其影像框架設定或移除中繼資料區塊和項目的方法。<br /> |
| [IWICMetadataReader](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatareader)<br /> | 公開提供存取基礎中繼資料內容的方法。此介面由獨立軟體廠商 (ISV) 實作，以建立新的中繼資料讀取器。<br /> |
| [IWICMetadataReaderInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatareaderinfo)<br /> | 公開提供已註冊中繼資料讀取器基本資訊的方法。<br /> |
| [IWICMetadataWriter](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatawriter)<br /> | 公開提供寫入中繼資料內容存取權的方法。此介面由 ISV 實作，以建立新的中繼資料寫入器。<br /> |
| [IWICMetadataWriterInfo](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicmetadatawriterinfo)<br /> | 公開提供已註冊中繼資料寫入器基本資訊的方法。<br /> |
| [IWICPalette](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpalette)<br /> | 公開用於存取和建立色彩表的方法，主要適用於索引像素格式。<br /> |
| [IWICPersistStream](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicpersiststream)<br /> | 公開提供額外載入和儲存方法的方法，這些方法接受 [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 /> | 公開提供像素格式相關資訊的方法。<br /> |
| [IWICPixelFormatInfo2](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpixelformatinfo2)<br /> | 藉由提供像素格式的其他資訊來延伸 [IWICPixelFormatInfo](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicpixelformatinfo)。<br /> |
| [IWICPlanarBitmapFrameEncode](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarbitmapframeencode)<br /> | 允許將平面元件影像像素寫入編碼器。<br /> |
| [IWICPlanarBitmapSourceTransform](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarbitmapsourcetransform)<br /> | 提供對平面 Y'CbCr 像素格式的存取，其中像素元件儲存在不同的元件平面中。<br /> |
| [IWICPlanarFormatConverter](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicplanarformatconverter)<br /> | 允許以平面來源初始化格式轉換器。<br /> |
| [IWICProgressiveLevelControl](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicprogressivelevelcontrol)<br /> | 公開用於取得漸進式解碼相關資訊並加以控制的方法。<br /> |
| [IWICStream](https://learn.microsoft.com/windows/win32/api/Wincodec/nn-wincodec-iwicstream)<br /> | 代表用於參考影像處理和中繼資料內容的 WIC 資料流。<br /> |
| [IWICStreamProvider](https://learn.microsoft.com/windows/win32/api/Wincodecsdk/nn-wincodecsdk-iwicstreamprovider)<br /> | 公開資料流提供者的方法。<br /> |

## 範例

如需適用於 Microsoft Game Development Kit (GDK) 之 WIC 的使用範例，請參閱 [SimpleTexture](https://github.com/microsoft/Xbox-ATG-Samples/tree/master/XDKSamples/IntroGraphics/SimpleTexture) 和 [xtexconv](https://github.com/microsoft/Xbox-ATG-Samples/tree/master/XDKSamples/Tools/xtexconv) 範例。

## 另請參閱

[圖形](/zh-TW/build/core-features/graphics/gc-graphics-toc)


## Related topics

- [XBOX 主機遊戲的認證測試 XBOX 需求](/zh-TW/publishing/certification/console-cert-tested-requirements.md)
- [XBOX 遊戲的 XBOX 需求](/zh-TW/publishing/certification/xbox-requirements.md)
- [安裝 GDK 工具鏈](/zh-TW/home/setup-install/download-install.md)
- [使用 GDK 在 XBOX 与 PC 上进行图形开发](/zh-CN/build/core-features/graphics/index.md)
- [XR-052 使用者狀態與遊戲存檔位置、漫遊及相依性](/zh-TW/publishing/certification/xr/xr-052.md)
