CImage::CreateEx
建立 CImage 點陣圖並將其附加至先前 CImage 建構的物件。
BOOL CreateEx(
int nWidth,
int nHeight,
int nBPP,
DWORD eCompression,
const DWORD* pdwBitmasks = NULL,
DWORD dwFlags = 0
) throw( );
參數
nWidth
CImage 點陣圖的寬度,以像素為單位)。nHeight
CImage 點陣圖的高度,以像素為單位)。 如果 nHeight 是正值,則點陣圖為由下而上的 DIB,而且其原點位於左下角。 如果 nHeight 是負數,則點陣圖為由上而下的 DIB,而且其原點是左上角。nBPP
位元數表示點陣圖的像素。 通常是 4, 8, 16, 24 或 32。 可以是 1 單色點陣圖或遮罩的。eCompression
是一種壓縮由下而上的點陣圖指定壓縮類型 (由上而下的 DIB 無法壓縮)。 可以是下列其中一個值:BI_RGB 格式會解壓縮。 指定這個值,則呼叫 CImage::CreateEx 時呼叫。 CImage::Create相當於。
BI_BITFIELDS 格式會解壓縮,而色彩表包含指定紅色,綠色和藍色元件,分別,每個像素的三 DWORD 色彩遮罩。 這是有效的,用於 16 位元和 32-bpp 點陣圖。
pdwBitfields
只使用,如果 eCompression 設為 BI_BITFIELDS,否則它必須是 NULL。 陣列的指標。 DWORD 三個位元遮罩,指定每一像素位元為,色彩的紅色、綠色和藍色元件使用,名稱分別為、和。 如需非之限制的詳細資訊,請參閱 Windows SDKBITMAPINFOHEADER 。dwFlags
指定點陣圖物件是否具有 Alpha 色頻。 可以是組合的零或多個下列值:只能使用createAlphaChannel ,如果為 32, nBPP ,並 eCompression 是 BI_RGB。 如果指定,則建立的影像具有每個像素的 Alpha (透明) 值,儲存在第 4 位元組每像素 (不使用在非 Alpha 32 位元影像)。 這個 Alpha 色頻,當呼叫 CImage::AlphaBlend時,會自動使用。
注意事項 在 [ CImage::Draw的呼叫,以 Alpha 色頻的影像自動為 Alpha 混色至目的端。
傳回值
是 ,如果成功。 否則 否。
範例
下列範例會建立 100x100 像素點陣圖,使用 16 位元輸入每個像素。 在指定之 16 位元像素,位元 0-3 輸入紅色元件,位元 4-7 輸入綠色, 8-11 欄位,然後輸入 Blue。 剩餘的 4 位元不會使用。
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
需求
Header: atlimage.h