㈠ 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();//釋放點陣圖對象