CImage选件类

CImage 在JPEG、GIF、BMP和可移植网络映像(PNG)格式提供增强的位图支持,包括能够加载和保存图像。

重要

此选件类及其成员不能在Windows运行时执行的应用程序。

class CImage

成员

bwea7by5.collapse_all(zh-cn,VS.110).gif公共构造函数

名称

说明

CImage::CImage

构造函数。

bwea7by5.collapse_all(zh-cn,VS.110).gif公共方法

名称

说明

CImage::AlphaBlend

显示具有透明或半透明的像素的位图。

CImage::Attach

附加 HBITMAPCImage 对象。 可以使用与非DIB部分位图或DIB部分位图。

CImage::BitBlt

将源设备上下文的位图到此当前设备上下文。

CImage::Create

创建DIB部分位图并将它附加到以前构造的 CImage 对象。

CImage::CreateEx

创建DIB部分位图(带有参数)并将它附加到以前构造的 CImage 对象。

CImage::Destroy

分离 CImage 对象的位图和销毁位图。

CImage::Detach

分离 CImage 对象的位图。

CImage::Draw

将源矩形的位图到目标矩形。 Draw 拉伸或压缩位图如果需要,以适应目标矩形的尺寸和处理alpha混合和透明的颜色。

CImage::GetBits

检索指向位图的实际像素值。

CImage::GetBPP

检索每像素的位数。

CImage::GetColorTable

从项的大小颜色表中检索红色,绿色,蓝色(RGB)颜色值。

CImage::GetDC

检索当前位图中选择的设备上下文。

CImage::GetExporterFilterString

查找可用的图像格式及其说明。

CImage::GetHeight

检索当前图像的高度(以像素为单位)。

CImage::GetImporterFilterString

查找可用的图像格式及其说明。

CImage::GetMaxColorTableEntries

在颜色表中检索项的最大数目。

CImage::GetPitch

检索当前图像的间距,以字节为单位)。

CImage::GetPixel

检索 xy指定的像素的颜色。

CImage::GetPixelAddress

检索给定像素的地址。

CImage::GetTransparentColor

检索该透明颜色的位置在颜色表中。

CImage::GetWidth

检索当前图像的宽度(以像素为单位)。

CImage::IsDIBSection

确定附加的位图是否为DIB部分。

CImage::IsIndexed

指示位图的颜色映射到标记的调色板。

CImage::IsNull

指示源位图当前是否正在加载。

CImage::IsTransparencySupported

指示应用程序是否支持透明位图和对于Windows 2000或更高版本编译的。

CImage::Load

从指定的文件加载图像。

CImage::LoadFromResource

从指定的资源加载图像。

CImage::MaskBlt

使用指定的掩码和光栅操作,将颜色数据进行源和目标位图。

CImage::PlgBlt

在源设备上下文执行从矩形的位块传输到一个平行四边形在目标设备上下文。

CImage::ReleaseDC

释放检索与 CImage::GetDC的设备上下文。

CImage::ReleaseGDIPlus

释放GDI+使用的资源。 必须调用释放全局 CImage 对象创建的资源。

CImage::Save

保存图像,指定类型。 保存 不能指定图像选项。

CImage::SetColorTable

在部分DIB的颜色表中将项范围的红色,绿色,蓝色RGB)颜色值。

CImage::SetPixel

设置像素在指定坐标到指定的颜色。

CImage::SetPixelIndexed

设置像素在指定坐标为颜色在调色板的指定索引。

CImage::SetPixelRGB

设置像素在指定坐标到指定的红色,绿色,蓝色(RGB)值。

CImage::SetTransparentColor

设置被视为透明的颜色的索引。 仅在调色板的一种颜色可以透明。

CImage::StretchBlt

将源矩形的位图到目标矩形,拉伸或压缩位图以适应目标矩形的尺寸,如果需要。

CImage::TransparentBlt

复制具有透明的颜色的位图从源设备上下文到此当前设备上下文。

bwea7by5.collapse_all(zh-cn,VS.110).gif公共运算符

名称

说明

CImage::operator HBITMAP

返回Windows处理附加到 CImage 对象。

备注

CImage 采用设备无关位图(DIB)部分的位图;但是,您可以使用 创建CImage::Load 仅使用DIB部分。 使用 附加,可以将非DIB部分位图到 CImage 对象,另一方面,但不能使用以下 CImage 方法,支持DIB只有部分位图:

若要确定附加的位图是否为DIB部分,请调用 IsDibSection.

备注

在Visual Studio .NET中Note 2003中,此选件类使 CImage 对象的数量的计数创建。只要计数转到0,函数 GdiplusShutdown 自动调用释放GDI+使用的资源。这样可确保始终正确地直接或间接地销毁DLL创建的所有 CImage 对象,并 GdiplusShutdown 不会从 DllMain调用。

备注

使用在DLL的全局 CImage 对象不建议使用。如果在DLL需要使用全局 CImage 对象,请调用 CImage::ReleaseGDIPlus 显式释放GDI+使用的资源。

CImage 不能选择到新 CDCCImage 创建其图像自己的 HDC。 由于 HBITMAP 可以一次只能选择到一 HDCHBITMAPCImage 不能选择到另一 HDC。 如果需要 CDC,从 CImage 中检索 HDC 并为其 CDC::FromHandle

示例

// Get a CDC for the image
CDC* pDC = CDC::FromHandle(m_myImage.GetDC());

// Use pDC here
pDC->Rectangle(0, 40, 100, 50);

m_myImage.ReleaseDC();

当在MFC项目时使用 CImage,请注意在项目中哪些成员函数需要指向 CBitmap 对象。 如果要使用这样的功能的 CImage,如 CMenu::AppendMenu,使用 CBitmap::FromHandle,将您的 CImageHBITMAP和使用返回的 CBitmap*

void CMyDlg::OnRButtonDown(UINT nFlags, CPoint point)
{
   UNREFERENCED_PARAMETER(nFlags);

   CBitmap* pBitmap = CBitmap::FromHandle(m_myImage);
   m_pmenuPop->AppendMenu(0, ID_BMPCOMMAND, pBitmap);
   ClientToScreen(&point);
   m_pmenuPop->TrackPopupMenu(TPM_RIGHTBUTTON | TPM_LEFTALIGN, point.x, 
      point.y, this);
}

通过 CImage,您可以访问DIB部分的实际位的。 可以使用 CImage 对象的任何位置前面使用Win32 HBITMAP或DIB部分。

备注

下面 CImage 方法在其用法的限制:

方法

限制

PlgBlt

仅使用Windows NT 4.0或更高版本一起使用。 在运行于Windows 95 /98或更高版本的应用程序将不起作用。

MaskBlt

仅使用Windows NT 4.0或更高版本一起使用。 在运行于Windows 95 /98或更高版本的应用程序将不起作用。

AlphaBlend

仅使用Windows 2000、Windows 98和更高版本的系统一起使用。

TransparentBlt

仅使用Windows 2000、Windows 98和更高版本的系统一起使用。

绘制

支持与Windows 2000、Windows 98和新版本的系统的透明度。

请参见 与以前的操作系统的CImage限制 有关这些方法的限制的更多详细信息。

可以使用从MFC或ATL的 CImage

备注

使用 CImage时,将创建一个项目,必须定义 CString,在包括 atlimage.h之前。如果您的项目使用ATL,不使用MFC,请包括 atlstr.h,在包括 atlimage.h之前。如果您的项目使用MFC (或者,如果它是使用MFC的一个ATL项目支持),请包括 afxstr.h,在包括 atlimage.h之前。

同样,在包括 atlimpl.cpp之前,必须包括 atlimage.h。若要轻松地完成此操作,请包括 atlimage.h 在您的 stdafx.h。

要求

Header: atlimage.h

请参见

参考

Device-Independent Bitmaps

CreateDIBSection

概念

MMXSwarm示例

SimpleImage示例

其他资源

ATL COM桌面元素