CImage将图片转为指定像素大小

CFileDialog fDlg(true, "jpg", "",   OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,   "JPG files (*.jpg)|*.jpg|");

if (fDlg.DoModal () != IDOK) return;

CImage imSrc,imDest;  

imSrc.Load( fDlg.GetPathName());   

HDC hDC = imSrc.GetDC();   

CDC *pDC = CDC::FromHandle(hDC);     

CBitmap bmp;   

bmp.CreateCompatibleBitmap(pDC,152,200);  

CDC memDC;   

memDC.CreateCompatibleDC(pDC);   

CBitmap *pOld =memDC.SelectObject(&bmp);      

::SetStretchBltMode(memDC.m_hDC,HALFTONE);   

::SetBrushOrgEx(memDC.m_hDC,0,0,NULL);   

imSrc.StretchBlt(memDC.m_hDC,CRect(0,0,152,200)/*DestRect*/,CRect(0,0,imSrc.GetWidth(),imSrc.GetHeight())/*SourceRect*/,SRCCOPY);   

//152,200就是你想要的图像的宽和高(以像素为单位)

HBITMAP  hBitmap=(HBITMAP)memDC.SelectObject(pOld->m_hObject);    

 imDest.Attach(hBitmap);// 载入位图资源      

CFileDialog fDlg1(false, "bmp", "",    OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,    "BMP files (*.bmp)|*.bmp|");   

if (fDlg1.DoModal () != IDOK) return;     

imDest.Save(fDlg1.GetPathName());      

 imSrc.ReleaseDC();   

imSrc.Destroy();   

imDest.Destroy();

转载于:https://www.cnblogs.com/dengpeng1004/p/4028688.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值