次の方法で共有


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 は書式設定解除され、カラー テーブルには、各ピクセルの赤、緑、および青の要素をそれぞれ指定する、3 個の DWORD 色のマスクで構成されます。これを使用する場合は、16 - 32-bpp ビットマップ有効です。

  • pdwBitfields
    eCompressionBI_BITFIELDSがに設定されている場合のみ使用され、それ以外の場合は nullである必要があります。各ピクセルはビットが色の赤、緑、青の各要素に対して使用するかを指定します DWORD の 3 ビット マスクの配列へのポインター、それぞれ。bitfields の制限事項の詳細については、Windows SDKの BITMAPINFOHEADER を参照してください。

  • dwFlags
    ビットマップ オブジェクトにアルファ チャネルがある場合に指定します。ゼロの組み合わせや次の値の多くがあります:

    • createAlphaChannel は nBPP が 32、eCompression が BI_RGBある場合のみ使用できます。指定すると、作成されたイメージの各ピクセルの各ピクセルの アルファ(透明度) の値が、第 4 バイトです (非アルファの 32 ビット イメージで未使用) 格納されます。このアルファ チャネルが自動的に CImage::AlphaBlendを呼び出すときに使用されます。

      [!メモ]

      CImage::Drawの呼び出しでは、アルファ チャネル付きのイメージが自動的にターゲットにアルファ ブレンドされる。

戻り値

成功した場合**[真]**。それ FALSE

使用例

次の例では、16 ビットを使用して各ピクセルをエンコードする 100x100 ピクセルのビットマップを作成します。指定した 16 ビット ピクセルで、数値ビットは赤をエンコードしますが、ビット 4-7 緑をエンコードし、ビットが 8-11 青をエンコードします。残りの 4 ビットは使用されません。

DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);

必要条件

ヘッダー: atlimage.h

参照

関連項目

CImage クラス

CImage::CImage

CImage::Create

CImage::AlphaBlend