CImage实现的全屏PNG截图

本来关于屏幕截图已经写了2篇博文了,但是效果都不是很理想,于是有了这个,直接使用CImage,代码简洁明了,比这个稳定:http://blog.csdn.net/sunflover454/article/details/49533651

最后截图生成的PNG文件保存在C:\ScreenShot文件夹下。

#include <atlimage.h>
#include <atltime.h>

//截取全屏保存为png
CString ScreenShot()
{
	HDC hDCScreen = ::GetDC(NULL);//首先获取到屏幕的句柄    
	int nBitPerPixel = GetDeviceCaps(hDCScreen, BITSPIXEL);//获取到每个像素的bit数目
	int nWidthScreen = GetDeviceCaps(hDCScreen, HORZRES);
	int nHeightScreen = GetDeviceCaps(hDCScreen, VERTRES);
	//创建一个CImage的对象
	CImage m_MyImage;
	//Create实例化CImage,使得其内部的画布大小与屏幕一致
	m_MyImage.Create(nWidthScreen, nHeightScreen, nBitPerPixel);
	//获取到CImage的 HDC,但是需要手动ReleaseDC操作,下面是MSDN的说明
	//Because only one bitmap can be selected into a device context at a time, 
	//you must call ReleaseDC for
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
MFC (Microsoft Foundation Class) 是一组用于开发 Windows 应用程序的 C++ 类库。CImage是MFC中用于处理图像的类之一。要实现图像的缩放功能,可以使用CImage类的Resize方法。 首先,我们需要加载一个图像文件到CImage对象中。可以使用CImage类的Load方法来完成这一步骤。例如,可以使用下面的代码加载一个名为"image.bmp"的图像文件: CImage image; image.Load(_T("image.bmp")); 接下来,我们需要创建一个新的CImage对象,用来存储缩放后的图像。可以使用CImage类的Create方法来创建一个指定大小的图像对象。例如,可以使用下面的代码创建一个大小为200x200像素的新图像对象: CImage newImage; newImage.Create(200, 200, image.GetBPP()); 然后,我们可以使用CImage类的Resize方法将原始图像缩放到指定大小。可以将原始图像对象和新图像对象作为参数传递给Resize方法。例如,可以使用下面的代码将原始图像缩放为200x200像素的尺寸: image.Resize(newImage.GetDC(), 0, 0, 200, 200, SRCCOPY); 最后,我们需要保存缩放后的图像。可以使用CImage类的Save方法将新图像保存为文件。例如,可以使用下面的代码将新图像保存为"resized_image.bmp": newImage.Save(_T("resized_image.bmp")); 综上所述,要使用MFC CImage实现图像的缩放功能,我们需要加载图像文件,创建新的图像对象,调用Resize方法进行缩放,最后保存缩放后的图像。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值