C++ CIMAGE放大处理及指定DC获取图像

//img为原始图像,drate为放大倍数,filepath为图片保存目录
void EnlargePictcure(CImage img, int dRate, CString filePath)
{
	HDC hdc = img.GetDC();
	int nWidth = img.GetWidth();
	int nHeight = img.GetHeight();

	int nDestWidth = dRate*nWidth;
	int nDestHeight = dRate*nHeight;
	HDC hDCMem = ::CreateCompatibleDC(hdc);
	HBITMAP hBitMap = ::CreateCompatibleBitmap(hdc, nDestWidth,nDestHeight);
	HBITMAP hOldMap = (HBITMAP)::SelectObject(hDCMem, hBitMap);

	::StretchBlt(hDCMem, 0,0,nDestWidth, nDestHeight,hdc,0,0,nWidth,nHeight,SRCCOPY);
	CImage destImg;
	destImg.Attach(hBitMap);
	destImg.Save(filePath);

	SelectObject(hDCMem, hOldMap);
	DeleteObject(hBitMap);
	DeleteDC(hDCMem);
	img.ReleaseDC();
}

//从对话框中获取图像并保存
						CImage Img;
						LG("FindError", "before printscreen");
						Img.Create(sc_rcImage.Width(), sc_rcImage.Height(), 24);
						HDC hdc = ::GetDC(imageWnd);
						BitBlt(Img.GetDC(),0,0,sc_rcImage.Width(),sc_rcImage.Height(),hdc,0,0,SRCCOPY);
						Img.ReleaseDC();
						::ReleaseDC(imageWnd, hdc);
						Img.Save(_T(".\\temp.jpg"));
						LG("FindError", "after printscreen");

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值