WIC 的新功能
Windows 映像元件 (WIC) 已更新為新版本的 Windows。 本主題提供這些新功能的快速簡介。
Windows 10 1507 版的新功能
存取低階 JPEG 資料以進行 WIC 解碼和編碼
從 Windows 10 1507 版開始,WIC 可讓您存取低階 JPEG 資料結構,包括 Huffman 和量化資料表。 如需詳細資訊,請參閱下列主題:
JPEG 索引編制
JPEG 索引編制是一種技術,可大幅改善隨機存取大型 JPEG 映射小型子領域的效能,但代價是一些額外的記憶體使用量。 任何 WIC 呼叫端都可以利用 JPEG 索引編制。
ID2D1ImageSourceFromWic介面的設計目的是在開啟 JPEG 索引時加以運用。 例如,ID2D1ImageSource API 只會在大型解析度影像的移動流覽和縮放等案例中要求影像所需的區段。 如需詳細資訊,請參閱下列主題:
Windows 8.1的新功能
JPEG YCbCr 映射的支援
從 Windows 8.1 開始,WIC 支援以原生格式解碼、轉換和編碼 JPEG Y'CbCr 影像資料。 這可讓應用程式在使用 Y'CbCr 編碼 JPEG 時,大幅減少特定映射作業的處理時間和記憶體耗用量。 如需詳細資訊,請參閱下列主題:
支援區塊壓縮格式 (DDS 檔案)
從 Windows 8.1 開始,WIC 會新增支援以下列格式編碼的 DDS 影像的新編解碼器:DXGI_FORMAT_BC1_UNORM、DXGI_FORMAT_BC2_UNORM和DXGI_FORMAT_BC3_UNORM。 您可以使用標準 WIC 介面以解碼形式存取 DDS 區塊壓縮資料,或使用新的 DDS 特定介面直接存取。 如需詳細資訊,請參閱下列主題:
- IWICDdsDecoder 介面
- IWICDdsEncoder 介面
Windows 8的新功能
在Windows 8中,WIC 已更新數個新功能。 Windows 7 和 Windows Server 2008 R2 也透過 Windows 7 平臺更新提供更新版本的 WIC,可透過 適用于 Windows 7 的平臺更新取得。
改善 Direct2D 整合
Windows 8中的 WIC 提供這些 API 來改善與 WIC 的 Direct2D 整合:
- IWICImageEncoder - 可將 Direct2DID2D1Image 內容編碼為 IWICBitmapFrameEncode的新介面。 此介面的方法會取得 WICImageParameters的指標,這是控制編碼的參數。
- IWICImagingFactory2 - 使用 CreateImageEncoder 方法的新 WIC Factory。 此介面繼承自原始 WIC Factory IWICImagingFactory,並以相同方式建立。
BMP 編解碼器 Alpha 支援的變更
Windows 8中的 WIC 支援將BITMAPV5HEADER影像檔載入為WICPixelFormat32bppBGRA格式影像。 此外,BMP 編碼器也支援新的布林值 ,編碼器選項 「EnableV5Header32bppBGRA」,指示編碼器使用 32bppBGRA 影像資料來寫入 BITMAPV5HEADER 。
如需 BMP 格式的詳細資訊,請參閱 BMP 格式概觀。
新的像素格式
Windows 8中的 WIC 會定義這些新的像素格式:
- GUID_WICPixelFormat32bppRGB
- GUID_WICPixelFormat64bppRGB
- GUID_WICPixelFormat96bppRGBFloat
- GUID_WICPixelFormat64bppPRGBAHalf
注意
TIFF 內建編解碼器會傳回GUID_WICPixelFormat96bppRGBFloat資料。 內建編解碼器不會使用其他三種格式。
AppContainer 中的元件擴充性限制
在 AppContainer 進程中執行時,包括所有 Windows 市集應用程式,WIC 只會使用 Windows 提供的元件,而不論系統上是否已安裝其他元件。 未在 AppContainer 中執行的應用程式不會受到影響。
應用程式不需要進行任何程式碼變更即可在 AppContainger 中執行,但 WICComponentEnumerateOptions 旗標和廠商 GUID 參數將不會有任何作用。 WIC 如果無法由 Windows 提供的編解碼器解碼,而且呼叫 CreateComponentEnumerator 方法只會傳回 Windows 提供的元件,WIC 將無法載入映射。
CLSID_WICPngDecoder和 PNG 解碼器色彩內容的變更
CLSID_WICPngDecoder1 已新增與 CLSID_WICPngDecoder相同的 GUID,並已新增 CLSID_WICPngDecoder2 。
針對 Windows 8 SDK 編譯時,CLSID_WICPngDecoder會#defined CLSID_WICPngDecoder2使用新的 PNG 解碼器行為來升級新編譯的應用程式。 應用程式應該繼續指定 CLSID_WICPngDecoder。
指定 CLSID_WICPngDecoder2 會建立 WIC PNG 解碼器的版本,以從 cHRM 和 gAMA 區塊產生 IWICColorCoNtext 。 這可讓此色彩空間中繼資料與其他 Windows API 搭配使用,以用於管理來源影像的色彩。 如果 iCCP 區塊存在、sRGB 區塊存在,或 gAMA 和 cHRM 區塊表示 sRGB 色彩空間,則不會從 gAMA 和 cHRM 區塊產生 IWICColorCoNtext 。
應用程式可以指定 CLSID_WICPngDecoder1 ,以建立不會從 gAMA 和 cHRM 區塊產生 IWICColorCoNtext 的 WIC PNG 解碼器版本。 這符合舊版 Windows 中 PNG 解碼器的行為。
變更WINCODEC_SDK_VERSION
針對 Windows 8 SDK 編譯時,WINCODEC_SDK_VERSION#defined WINCODEC_SDK_VERSION2使用新的 PNG 解碼器行為來升級新編譯的應用程式。 否則,#defined WINCODEC_SDK_VERSION1。 應用程式應該繼續指定 WINCODEC_SDK_VERSION。
呼叫WICCreateImagingFactory_Proxy建立映射處理站時指定WINCODEC_SDK_VERSION會導致建立CLSID_WICPngDecoder2,而不是從CreateDecoder方法和其變體CLSID_WICPngDecoder1。 此外,解碼器元件資訊列舉值會傳回 CLSID_WICPngDecoder2 元件資訊,但不會傳回 CLSID_WICPngDecoder1 資訊。
指定 WINCODEC_SDK_VERSION1 會導致使用 CLSID_WICPngDecoder1 ,而不是在上述情況下 使用CLSID_WICPngDecoder2 。
變更CLSID_WICImagingFactory
CLSID_WICImagingFactory1 已新增與 CLSID_WICImagingFactory相同的 GUID,且已新增 CLSID_WICImagingFactory2 。
針對 Windows 8 SDK 編譯時,CLSID_WICImagingFactory#defined CLSID_WICImagingFactory2使用新的 PNG 解碼器行為來升級新編譯的應用程式。 應用程式應繼續指定 CLSID_WICImagingFactory。
呼叫CoCreateInstance以建立映射處理站時指定CLSID_WICImagingFactory2會導致建立CLSID_WICPngDecoder2,而不是從CreateDecoder方法和其變體建立CLSID_WICPngDecoder1。 此外,解碼器元件資訊列舉值會傳回 CLSID_WICPngDecoder2 元件資訊,但不會傳回 CLSID_WICPngDecoder1 資訊。
指定 CLSID_WICImagingFactory1 會導致 使用CLSID_WICPngDecoder1 ,而不是在上述情況下 使用CLSID_WICPngDecoder2 。
Windows 7 的新功能
在 Windows 7 中,WIC 已更新數個新功能。 本主題提供這些新功能的快速簡介。
更新至 TIFF 編解碼器
Windows 7 已更新 WIC TIFF 編解碼器,以支援舊版 WIC 不支援的數個功能。
- 支援大型 TIFF 檔案。
- 解碼並排顯示 TIFF 影像。
- 解碼平面 (平面) TIFF 影像。
- 解碼 JPEG 編碼 TIFF 影像。
漸進式解碼
漸進式解碼可讓您在整個影像完成下載之前,以累加方式解碼和轉譯影像的部分。 這項功能可大幅改善從網際網路檢視影像時的使用者體驗,因為使用者不需要等待整個影像下載,才能開始解碼。 透過漸進式解碼,使用者能夠在下載整個影像之前,看到具有可用資料的影像預覽。 這項功能對於任何用來檢視來自網際網路或具有有限頻寬之資料來源的影像的應用程式而言都很重要。
如需詳細資訊,請參閱 漸進式解碼概觀。
JPEG、PNG 和 GIF 的擴充中繼資料支援
在 Windows 7 中,WIC 已擴充其 JPEG、PNG 和 GIF 影像的中繼資料支援。
- 已新增動畫 GIF 和 GIF 屬性的支援。
- 擴充的 JPG 元資料處理程式,以支援 Chrominance、亮度和批註中繼資料。
- 擴充的 PNG 元資料處理程式,以支援 tIME、sRGB、iCCP、hIST、cHRM、iTXt、bKGD 和 gAMA 中繼資料。
- 新增了 ResolutionInfo 中繼資料和 IPTC 摘要中繼資料的新 8BIM 元資料處理程式。
- 新增邏輯畫面描述元 (LSD) 、影像描述元 (IMD) 、圖形控制延伸模組 (GCE) ,以及 APE) 中繼資料的應用程式 (延伸模組的新元資料處理程式。
- 支援跨越 APPn 區塊的中繼資料。
多執行緒 Apartment 支援
多執行緒 Apartment 內的物件 (MTA) 可由 MTA 內的任意數目執行緒同時呼叫,以便在多核心系統和特定伺服器案例上提供更好的效能。 此外,位於 MTA 內的 WIC 編解碼器可以呼叫位於 MTA 內的其他物件,而不需要封送處理位於不同 STA Apartment 中線程之間呼叫的相關成本。 在 Windows 7 中,所有內建 WIC 編解碼器都已更新為支援 MTA,包括 JPEG、TIFF、PNG、GIF、ICO 和 BMP。 強烈建議撰寫編解碼器以支援 MTA。 不支援 MTA 的編解碼器會導致多執行緒應用程式中因封送處理而大幅降低效能。 啟用 MTA 支援需要在編解碼器中實作適當的同步處理。 這些同步處理技術的確切實作已超出本白皮書的範圍。 以下提供同步處理元件物件模型 (COM) 物件的一般參考。
中繼資料工作組實作
目前有各種包含重迭屬性的中繼資料儲存格式,沒有任何清楚的業界標準或一致方法的指引可用來讀取和寫入這些元資料格式。 為了協助處理各種格式和屬性,已形成中繼資料工作組 (MWG) 。 MWG 的目標是提供指導方針,以確保各種平臺、應用程式和裝置之間的互通性。 MWG 所建立的指導方針適用于 XMP、Exif 和 IPTC 元資料欄位,以及 JPEG、TIFF 和 PSD 影像格式。
在 Windows 7 中,相片元資料處理程式和中繼資料原則層已根據 MWG 所建立的指導方針更新為讀取和寫入影像中繼資料。 如需中繼資料工作組 (MWG) 的詳細資訊,請檢視 已建立的中繼資料指導方針。
Windows Vista 和 Windows Server 2008 支援的 Windows 7 功能
Windows Vista 平臺更新是一組執行時間程式庫,可讓開發人員將應用程式設為 Windows 7 和 Windows Vista。 適用于 Windows Server 2008 的平臺更新是一組執行時間程式庫,可讓開發人員將應用程式設為 Windows Server 2008 R2 和 Windows Server 2008。 Windows Vista 平臺更新和 Windows Server 2008 平臺更新將透過 Windows Update 提供給所有 Windows Vista 和 Windows Server 2008 客戶。 需要 Windows Vista 平臺更新或 Windows Server 2008 平臺更新的協力廠商應用程式可以有Windows Update偵測是否已安裝必要的更新;如果沒有,Windows Update會在背景下載並安裝。 如需這兩個更新的詳細資訊,請參閱 Windows Vista 的平臺更新