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