位圖來源概觀
本主題介紹位圖來源項,這是表示影像位圖圖元的核心 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 物件來存取圖元。
如需使用 IWICBitmap 和 IWICBitmapLock 物件的範例,請參閱如何修改位圖來源圖元 主題。
轉換點圖來源
WIC 提供數個 IWICBitmapSource 介面來轉換像素數據。 具體而言,WIC 提供位圖來源轉換,用於縮放、裁剪、旋轉和翻轉像素數據。 這些點陣圖來源轉換 IWICBitmapClipper、IWICBitmapScaler,以及 IWICBitmapFlipRotator。 每一個點陣圖來源都有方法來初始化和建立新的已轉換位圖來源。 例如,IWICBitmapClipper 包含 Initialize 方法。 此方法使用指定的 WICRect處的輸入位圖來源被裁剪的像素數據來初始化裁剪器位圖來源。
以下操作主題展示不同的轉換位圖來源用法。
圖元格式和色彩內容轉換器
WIC 也提供點陣圖來源,以轉換點陣圖來源的圖元格式和色彩內容。 WIC 會針對這些作業提供 IWICFormatConverter 和 IWICColorTransform。
IWICFormatConverter 將指定的點陣圖來源從一個像素格式轉換成另一個圖元。
如需使用 IWICFormatConverter的範例,請參閱 如何使用 Direct2D 繪製位圖來源主題。
繪製位圖來源
WIC 仍然是影像編解碼器技術,可用來管理影像數據和元數據,而且本身不會提供轉譯影像的方式。 不過,您可以使用數種 Windows 圖形技術來繪製位圖來源,例如 Direct2D、Windows Graphics Device Interface (GDI),以及 Windows GDI+。 所有這些技術都有與 WIC 不同的互作性層級。 Direct2D 透過 ID2D1Bitmap 介面和 ID2D1RenderTarget::CreateBitmapFromWicBitmap 方法提供直接互作性,而 GDI 和 GDI+ 則要求使用者將位圖來源圖元複製到 位圖。
下列範例示範如何使用 Direct2D 繪製位圖來源。
- 如何使用 Direct2D 繪製位圖來源
相關主題
-
概念
-
其他資源