共用方式為


位圖來源概觀

本主題介紹位圖來源項,這是表示影像位圖圖元的核心 Windows 映像元件 (WIC) 組件。

本主題包含下列各節。

點陣圖來源

IWICBitmapSource 元件是 WIC 的基本建置元件,代表單一圖元集。 位圖來源可以是多框架影像的個別框架,或者可能是在點陣圖來源上執行的轉換結果。 IWICBitmapSource 介面是許多主要 WIC 介面的基底,例如譯碼器框架 IWICBitmapFrameDecode,以及轉換位圖來源,例如 IWICBitmapFlipRotator

下表描述 WIC 所提供的不同位圖來源元件。

點陣圖來源 描述
IWICBitmapFrameDecode 表示譯碼器影像框架。
IWICBitmap 提供點陣圖來源的可寫入性和記憶體內部表示。
IWICBitmapClipper 將點陣圖來源裁剪至所需的矩形。
IWICBitmapFlipRotator 將點陣圖來源翻轉和/或旋轉至所需的方向。
IWICBitmapScaler 將點陣圖來源調整為所需的大小。
IWICColorTransform 轉換點圖來源的色彩內容。
IWICFormatConverter 轉換點圖來源的像素格式。

 

點陣圖框架

最常見的 IWICBitmapSource 是 IWICBitmapFrameDecode。 這個介面可用來存取影像格式的實際點圖數據。 許多影像格式只支援單一位圖框架,而 GIF 和 TIFF 等其他格式則支援每個影像的多個畫面格。

如需從影像中取得位圖幀的範例,請參閱 如何擷取影像的幀

點陣圖

IWICBitmap 會將可寫入性和靜態記憶體中的概念新增至位圖來源。 WIC 位圖可讓使用者直接存取位圖來源的圖元。 此直接存取是由 Lock 方法提供,並支援位圖圖元的任何讀取和/或寫入存取組合。 Lock 方法會鎖定指定的點陣圖矩形,並提供 IWICBitmapLock 物件來存取圖元。

如需使用 IWICBitmapIWICBitmapLock 物件的範例,請參閱如何修改位圖來源圖元 主題

轉換點圖來源

WIC 提供數個 IWICBitmapSource 介面來轉換像素數據。 具體而言,WIC 提供位圖來源轉換,用於縮放、裁剪、旋轉和翻轉像素數據。 這些點陣圖來源轉換 IWICBitmapClipperIWICBitmapScaler,以及 IWICBitmapFlipRotator。 每一個點陣圖來源都有方法來初始化和建立新的已轉換位圖來源。 例如,IWICBitmapClipper 包含 Initialize 方法。 此方法使用指定的 WICRect處的輸入位圖來源被裁剪的像素數據來初始化裁剪器位圖來源。

以下操作主題展示不同的轉換位圖來源用法。

圖元格式和色彩內容轉換器

WIC 也提供點陣圖來源,以轉換點陣圖來源的圖元格式和色彩內容。 WIC 會針對這些作業提供 IWICFormatConverterIWICColorTransform

IWICFormatConverter 將指定的點陣圖來源從一個像素格式轉換成另一個圖元。

如需使用 IWICFormatConverter的範例,請參閱 如何使用 Direct2D 繪製位圖來源主題。

繪製位圖來源

WIC 仍然是影像編解碼器技術,可用來管理影像數據和元數據,而且本身不會提供轉譯影像的方式。 不過,您可以使用數種 Windows 圖形技術來繪製位圖來源,例如 Direct2D、Windows Graphics Device Interface (GDI),以及 Windows GDI+。 所有這些技術都有與 WIC 不同的互作性層級。 Direct2D 透過 ID2D1Bitmap 介面和 ID2D1RenderTarget::CreateBitmapFromWicBitmap 方法提供直接互作性,而 GDI 和 GDI+ 則要求使用者將位圖來源圖元複製到 位圖

下列範例示範如何使用 Direct2D 繪製位圖來源。

概念

Windows 映射元件概觀

編碼概觀

其他資源

如何撰寫 WIC-Enabled 編解碼器