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 に正の値を指定すると、CImage オブジェクトに割り当てられるビットマップは、左下隅を起点とする逆方向 (下から上) の DIB になります。 nHeight に負の値を指定すると、CImage オブジェクトに割り当てられるビットマップは、左上隅を起点とする順方向 (上から下) の DIB になります。nBPP
ビットマップの 1 ピクセルあたりのビット数。 この値は通常、4、8、16、24、または 32 です。 モノクロ ビットマップやマスクの場合は 1 も指定できます。eCompression
逆方向のビットマップの圧縮方式 (順方向の DIB は圧縮できません)。 次のいずれかの値になります。BI_RGB 圧縮なし。 CImage::CreateEx の呼び出し時にこの値を指定すると、CImage::Create を呼び出した場合と同じ結果になります。
**BI_BITFIELDS **圧縮なし。この値を指定すると、ビットマップのカラー テーブルは、各ピクセルの赤、緑、青のそれぞれの成分を示す 3 つの DWORD カラー マスクで構成されます。 この値は、1 ピクセルあたりのビット数が 16 ビットまたは 32 ビットのビットマップを作成する場合に有効です。
pdwBitfields
eCompression を BI_BITFIELDS に設定した場合だけ使用します。それ以外の場合は NULL です。 3 つの DWORD ビットマスクを格納している配列を指すポインターです。このポインターによって、赤、緑、青の成分値のために使用される各ピクセル内のビットがそれぞれ指定されます。 ビット フィールドの制限事項については、Windows SDK の「BITMAPINFOHEADER」を参照してください。dwFlags
ビットマップ オブジェクトのアルファ チャネルの有無を指定します。 次の値を 0 個以上組み合わせて指定できます。**createAlphaChannel **nBPP を 32、eCompression を BI_RGB に設定した場合だけ使用できます。 この値を指定すると、作成されたイメージにアルファ (透明度) 値が設定され、そのアルファ値が各ピクセルの 4 番目のバイトに格納されます (このバイトは、アルファ チャネルを使用しない 32 ビット イメージでは使用されません)。 このアルファ チャネルは、CImage::AlphaBlend を呼び出すときに自動的に使用されます。
注意
アルファ チャネルを持つイメージは、CImage::Draw を呼び出すときに自動的にアルファ ブレンドされて対象のイメージに描画されます。
戻り値
正常終了した場合は TRUE を返します。 それ以外の場合は FALSE を返します。
使用例
次のコード例では、100 x 100 ピクセルのビットマップ イメージを、ピクセルごとに 16 ビット使用して作成します。 16 ビット内では、0 ~ 3 ビットで赤、4 ~ 7 ビットで緑、8 ~ 11 ビットで青の成分値を指定します。 残りの 4 ビットは使用されません。
DWORD adwBitmasks[3] = { 0x0000000f, 0x000000f0, 0x00000f00 };
m_myImage.CreateEx(100, 100, 16, BI_BITFIELDS, adwBitmasks, 0);
必要条件
**ヘッダー:**atlimage.h