1、首先是gdi
CImage imgTemp;
imgTemp.Load(_T("D:\\zzq.bmp"));//加载图片
HDC hDC = imgTemp.GetDC();
CDC *pImageDC1 = CDC::FromHandle(hDC);
CBitmap *bitmap1 = pImageDC1->GetCurrentBitmap();
BITMAP bmpInfo;
bitmap1->GetBitmap(&bmpInfo);
CImage ResultImage;//缩放结果
// 建立新的 CImage
int StretchWidth = 640;//缩放宽度
int StretchHeight = 480;//缩放高度
ResultImage.Create(StretchWidth, StretchHeight, bmpInfo.bmBitsPixel);
CDC* ResultImageDC = CDC::FromHandle(ResultImage.GetDC());
ResultImageDC->SetStretchBltMode(HALFTONE); // 使用最高品質的方式
::SetBrushOrgEx(ResultImageDC->m_hDC, 0, 0, NULL); // 調整 Brush 的起點
// 把 pImage 畫到 ResultImage 上面
StretchBlt(*ResultImageDC, 0, 0, StretchWidth, StretchHeight, *pImageDC1, 0, 0, imgTemp.GetWidth(), imgTemp.GetHeight(), SRCCOPY);
// pImage->Draw(*ResultImageDC,0,0,StretchWidth,StretchHeight,0,0,pImage->GetWidth(),pImage->GetHeight());
imgTemp.Releas