共用方式為


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

請參閱

參考

CImage 類別

CImage::CImage

CImage::Create

CImage::AlphaBlend