CImage缩放图片、截图图片

文章介绍了如何使用CImage类进行图片的加载、按比例缩放、裁剪以及透明度调整的操作,展示了在C++编程中处理图像的基本步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CImage oldimg;
//加载图片
oldimg.Load(GetExePath() + "img\\" + "test.bmp");
if (oldimg.IsNull())
{
	continue;
}

int oldWidth = oldimg.GetWidth();
int oldHeight = oldimg.GetHeight();

int newWidth = oldWidth+10;
int newHeight = oldHeight+10;
CImage newimg;
if (!newimg.CreateEx(newWidth, newHeight, 24, BI_RGB))
{
	oldimg.Destroy();
	continue;
}

//按比例放大或缩小图片
int nPreMode = ::SetStretchBltMode(newimg.GetDC(), HALFTONE);
newimg.ReleaseDC();
oldimg.Draw(newimg.GetDC(), 0, 0, newWidth, newHeight, 0, 0, oldWidth, oldHeight);
newimg.ReleaseDC();

::SetBrushOrgEx(newimg.GetDC(), 0, 0, NULL);
newimg.ReleaseDC();
::SetStretchBltMode(newimg.GetDC(), nPreMode);
newimg.ReleaseDC();


//裁剪图片
int cutWidth = oldWidth/2;
int cutHeight = oldHeight/2;
CImage  timg;
timg.Create(cutWidth, cutHeight, oldimg.GetBPP());
oldimg.BitBlt(timg.GetDC(), 0, 0, cutWidth, cutHeight, 0, 0, SRCCOPY);
timg.TransparentBlt(pDC->GetSafeHdc(), 0, 0, cutWidth, cutHeight, RGB(255, 255, 255));
timg.ReleaseDC();
timg.Destroy();

newimg.Destroy();
oldimg.Destroy();

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值