
若要了解有关 Visual Studio 2017 RC 的最新文档,请参阅 Visual Studio 2017 RC 文档。
CImage提供了增强的位图支持,包括加载和保存 JPEG、 GIF、 BMP 和可移植网络图形 (PNG) 格式的图像的能力。
重要事项
不能在 Windows 运行时中执行的应用程序中使用此类及其成员。
class CImage
名称描述
CImage::CImage
构造函数。
名称描述
Cimage:: Alphablend
显示具有透明或半透明的像素的位图。
CImage::Attach
将附加HBITMAP到CImage对象。 可以用于非 DIB 部分位图或 DIB 部分位图。
CImage::BitBlt
将源设备上下文的位图复制到此当前的设备上下文。
CImage::Create
创建 DIB 部分位图,并将其附加到先前构造CImage对象。
CImage::CreateEx
创建的 DIB 部分位图 (采用附加参数),并将其附加到先前构造CImage对象。
CImage::Destroy
分离从位图CImage对象,并销毁位图。
CImage::Detach
分离从位图CImage对象。
Cimage:: Draw
1.stretchblt:函数从源矩形中复制一个位图到目标矩形,必要时按目前设备设置的模式进行图像的拉伸或压缩。stretchblt:从源矩形中复制一个位图到目标矩形,必要时按目标设备设置的模式进行图像的拉伸或压缩,如果目标设备是窗口dc,则意味着在窗口绘制位图,大致的使用代码如下:。将源矩形中的位图拷贝到目标矩形中,如果有必要,可以扩展或压缩该位图使其与目标矩形尺寸吻合。
CImage::GetBits
检索指向位图的实际像素值的指针。
CImage::GetBPP
检索每个像素的位数。
CImage::GetColorTable
从颜色表中的条目范围检索红、 绿、 蓝 (RGB) 颜色值。
CImage::GetDC
检索在其中选择当前位图的设备上下文。
CImage::GetExporterFilterString
查找可用的图像格式和它们的说明。
CImage::GetHeight
检索当前图像以像素为单位的高度。
CImage::GetImporterFilterString
查找可用的图像格式和它们的说明。
CImage::GetMaxColorTableEntries
检索的最大颜色表中的条目数。
CImage::GetPitch
检索当前的图像,以字节为单位的音调。
CImage::GetPixel
检索由指定的像素颜色x和y。
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
设置红、 绿、 蓝色 RGB) 颜色值区域中的 DIB 部分的颜色表中的条目。

CImage::SetPixel
设置为指定的颜色的指定坐标处的像素。
CImage::SetPixelIndexed
设置在到颜色的调色板的指定索引处的指定坐标的像素。
CImage::SetPixelRGB
设置为指定的红色、 绿色、 蓝 (RGB) 值的指定坐标处的像素。
CImage::SetTransparentColor
设置要处理的颜色的索引为透明。 只有一种颜色调色板中的可以是透明的。
CImage::StretchBlt
将位图从源矩形复制到目标矩形,可拉伸或压缩位图以符合目标矩形的尺寸,如有必要。
Cimage:: Transparentblt
将位图,并使用透明颜色来自源设备上下文复制到此当前的设备上下文。
名称描述
CImage::operator HBITMAP
返回附加到的 Windows 句柄CImage对象。
CImage采用的位图,任一与设备无关位图 (DIB) 部分但是,您可以使用创建或CImage::Load具有仅 DIB 区域。 您可以将附加到一个非 DIB 部分位图CImage对象使用附加,但不是能再使用以下CImage支持仅 DIB 部分位图的方法︰
若要确定是否附加的位图 DIB 部分,请调用IsDibSection。
说明
请注意在 Visual Studio.NET 2003 中,此类保留数的计数CImage创建的对象。 只要计数变为 0,该函数GdiplusShutdown自动调用以释放使用的 GDI + 资源。 这样可确保任何CImage始终正确销毁对象创建的 Dll 的直接或间接地, GdiplusShutdown不从调用DllMain。
说明
使用全局CImage不建议在 DLL 中的对象。 如果您需要使用全局CImage中一个 DLL,调用对象CImage::ReleaseGDIPlus来显式释放所使用的 GDI + 资源。
CImage不能选择到新CDC。 CImage创建其自己HDC的图像。 因为HBITMAP只能为一个选择HDC一次HBITMAP与关联CImage不能为另一选择HDC。 如果您需要CDC,检索HDC从CImage并将其交给 [CDC::FromHandle] (.../ Topic/CDC%20Class.md#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();
所以pthread_create函数第三个参数必须传一个函数指针,而这个函数指针指向的函数以一个void的指针为参数,返回的也是一个指向void的指针。首先,next是一个指针,它指向一个函数,该函数返回另一个指针,该指针指向一个类型为char的常量指针,或者说next是一个指向函数的指针,该函数返回另一个指针,该指针指向一个只读的指向char的指针。msdn是这么声明的,从这个声明我们可以推断出gets()应该返回一个指向char的指针,再从我们上面的实例,我们不难推断出这个函数返回的指针和传递给他的是同一个指针,所以他的定义应该像是这样:。
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 限制与早期版本的操作系统更多详细信息有关的限制对这些方法。
您可以使用CImage从 MFC 或 atl。
说明
当您创建一个项目使用CImage,必须定义CString您包括之前atlimage.h。 如果您的项目使用 ATL 无需 MFC,包括atlstr.h您包括之前atlimage.h。 如果您的项目使用 MFC (或如果它是 MFC 支持的 ATL 项目),包括afxstr.h您包括之前atlimage.h。
若要轻松地完成此操作,请包括 atlimage.h 在您的 stdafx.h。请注意cimage hbitmap,这一切工程同时cdialog的完全同样的方式和的cpropertypage您的stdafx.h中#包括easysize.h(或把它在你的include目录和 #包括lt。(2)打开stdafx.h文件中添加cimage类的包含文件atlimage.h。
标头︰ atlimage.h
显示具有透明或半透明的像素的位图。
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
const POINT& pointDest,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER) const throw();
BOOL AlphaBlend(
HDC hDestDC,
int xDest,
int yDest,
int nDestWidth,
int nDestHeight,
int xSrc,
int ySrc,
int nSrcWidth,
int nSrcHeight,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
BOOL AlphaBlend(
HDC hDestDC,
const RECT& rectDest,
const RECT& rectSrc,
BYTE bSrcAlpha = 0xff,
BYTE bBlendOp = AC_SRC_OVER);
hDestDC
目标设备上下文的句柄。
xDest
X 坐标,使用逻辑单位,目标矩形左上角。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-115923-1.html
狙击
早就不喝这玩意儿
就是为了使别人活得更美好
是什么目的吗