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 位掩码,指定要位每个像素的颜色的红色,绿色和蓝色组件,分别。 有关bitfields的限制的信息,请参见。Windows SDK的 BITMAPINFOHEADER

  • dwFlags
    指定位图对象是否具有一个alpha通道。 可以是零个或更多的组合以下值:

    • 只能使用createAlphaChannel ,如果 nBPP 是32,因此,eCompression 是 BI_RGB。 如果指定,所生成的图像的每个像素的alpha、红色(透明度),值存储在第4个字节每像素(未使用在非Alpha 32位图象)。 此alpha通道,在调用 CImage::AlphaBlend时,自动使用。

      备注

      在调用 CImage::Draw,与一个alpha通道的图像自动alpha混合中为目标。

返回值

TRUE,如果成功。 否则 FALSE

示例

下面的示例创建一100x100像素位图,使用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);

要求

Header: atlimage.h

请参见

参考

CImage选件类

CImage::CImage

CImage::Create

CImage::AlphaBlend