㈠ VC/MFC 如何让一张图片文件放大缩小呢。比如图片的分辨率是1024*768的,然后将它成了分辨率改为300*300
代码手写的,应该有错误,自己改下吧,hwnd是你View的m_hWnd句柄
CString path=_T("c:\123.jpg");
BITMAP bmp;
HBITMAP hbitmap=(HBITMAP)::LoadImage(0,path.AllocSysString(),IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::GetObject(hbitmap,sizeof(BITMAP),&bmp);
DWORD dwCount=(DWORD)(bmp.bmWidthBytes*bmp.bmHeight);
CDC *pcdc = CDC::FromHandle(GetDC(hwnd));
pdc.CreateCompatibleDC(pcdc);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pcdc,width,height);
pdc.SelectObject(&bmp);
pdc.StretchBlt(0,0,300,300,(CDC*)pcdc,x,y,bmp.width,bmp.height,SRCCOPY);
CPalette *cpalette=pdc.GetCurrentPalette();
HPALETTE hpalette=HPALETTE(cpalette);
Bitmap bitmap(hbitmap,hpalette);
CString str=_T("C:\\123size.jpg");
WCHAR *pathname=str.AllocSysString();
CLSID clsid;
CString strsid=_T("image/jpg");
WCHAR *pstrsid=strsid.AllocSysString();
GetEncoderClsid(pstrsid,&clsid);
bitmap.Save(pathname,&clsid,NULL);
㈡ MFC控制图片的大小
StrechBlt到指定大小的DC上再保存
㈢ MFC中如何调整图片大小
没办法用picture控件做到改变大小,但你做可以做成位图,关联成位图对像,然后可以根据你想要的大小用StretchBlt()拉伸。
㈣ 在MFC中插入的位图资源如何调整显示大小
用StretchBlt代替BitBlt画图,就可以调整大小了。
㈤ MFC 图片怎么实现放大缩小功能
BOOL StretchBlt(
HDC hdcDest, // handle to destination DC
int nXOriginDest, // x-coord of destination upper-left corner
int nYOriginDest, // y-coord of destination upper-left corner
int nWidthDest, // width of destination rectangle
int nHeightDest, // height of destination rectangle
HDC hdcSrc, // handle to source DC
int nXOriginSrc, // x-coord of source upper-left corner
int nYOriginSrc, // y-coord of source upper-left corner
int nWidthSrc, // width of source rectangle
int nHeightSrc, // height of source rectangle
DWORD dwRop // raster operation code
);
你用这个函数就是可以了,自己先创建一个BITMAP然后将你要放大的图片选到BITMAP中,这样你就是可以操作你的画布了,在将图片输出
㈥ mfc中图片大小怎么调整
修改对话框属性 勾选horizontal scroll和vertical scroll
㈦ mfc导入的图片怎么调整大小啊
方法
可以放到static控件上,再调整控件大小。
代码如下
CDC*pDC=pView->GetDC();
CRectrc;
pView->GetClientRect(rc);
CDCmemDC;//定义一个设备上下文
memDC.CreateCompatibleDC(pDC);//创建兼容的设备上下文
HBITMAPBmp;
Bmp=(HBITMAP)LoadImage(NULL,Filename,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
CBitmap*bmp=NULL;
bmp=CBitmap::FromHandle(Bmp);
memDC.SelectObject(bmp);//选中位图对象
pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,0,0,1280,1024,SRCCOPY);//绘制位图
bmp->DeleteObject();//释放位图对象