當前位置:首頁 » 圖片效果 » c怎樣打開jpg圖片
擴展閱讀
面積多少平方公里 2024-07-02 16:13:28
怎樣電腦做幼兒園食譜 2024-07-02 16:09:38
怎樣管理主觀性強的下屬 2024-07-02 15:53:45

c怎樣打開jpg圖片

發布時間: 2024-06-29 05:24:02

㈠ 鎬庢牱鐢–璇璦鏄劇ず涓寮爅pg鐨勫浘鐗囧憿

鍙浠ョ敤鍑芥暟OleLoadPicture浠庡寘鍚鏈夊浘鍍忛厤娑堟暟鎹鐨勬祦涓瑁呰澆鍥懼儚銆

鍏蜂綋瀹炵幇浠g爜濡備笅錛

//鍦ㄦ樉紺哄浘鍍忎箣鍓嶏紝棣栧厛瑕佽幏鍙栧埌鍥懼儚鏂囦歡鐨勫瓨鏀捐礬寰勶紝榪欓噷閲囩敤鏍囧噯鐨勬枃浠舵墦寮瀵硅瘽妗嗘潵閫夊彇鍥懼儚鏂囦歡錛屾枃浠跺悕瀛樻斁鍦–String鍨嬬殑鍙橀噺m_sPath涓錛
CFileDialogdlg(TRUE,"jpg","*.jpg",
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"JPEG鏂囦歡(*.jpg)|*.jpg|GIF鏂囦歡(*.gif)|*.gif||",NULL);
if(dlg.DoModal()==IDOK)
{
m_sPath=dlg.GetPathName();
Invalidate();
}
//涓虹畝鍗曡★紝鍥懼艦鏄劇ず鐨勪唬鐮佺洿鎺ュ湪瑙嗙被涓鐨凮nDraw涓緙栧啓錛岄栧厛鎵撳紑鏂囦歡騫跺垽鏂鏂囦歡鐨勫彲鐢ㄦэ紝騫舵妸鏂囦歡鍐呭規斁鍒版祦鎺ュ彛IStream鐨勫硅薄pStm涓錛
IStream*pStm;
CFileStatusfstatus;
CFilefile;
LONGcb;
鈥︹
if(file.Open(m_Path,CFile::modeRead)&&file.GetStatus(m_Path,fstatus)&&((cb=fstatus.m_size)!=-1))
{
HGLOBALhGlobal=GlobalAlloc(GMEM_MOVEABLE,cb);
LPVOIDpvData=NULL;
if(hGlobal!=NULL)
{
if((pvData=GlobalLock(hGlobal))!=NULL)
{
file.ReadHuge(pvData,cb);
GlobalUnlock(hGlobal);
CreateStreamOnHGlobal(hGlobal,TRUE,&pStm);
}
}
}


//鐒跺悗錛屽氨鐩存帴璋冪敤OleLoadPicture鍑芥暟浠庢祦涓瑁呰澆鍥懼儚錛
IPicture*pPic;
鈥︹
OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic));


//鐢變簬璇ュ嚱鏁版湁鏃朵細瀵艱嚧澶辮觸錛屾墍浠ュ簲褰撶敤SUCCEEDED瀹忔潵鍋氫竴浜涢傚綋鐨勪繚鎶ゅ伐浣,鍙鏈夊湪鏁版嵁瑁呰澆鎴愬姛鐨勫墠鎻愪笅鎵嶈兘緇х畫涓嬮潰鐨勫浘鍍忔樉紺哄伐浣滐細
if(SUCCEEDED(OleLoadPicture(pStm,fstatus.m_size,TRUE,IID_IPicture,(LPVOID*)&pPic)))
{
OLE_XSIZE_HIMETRIChmWidth;
OLE_YSIZE_HIMETRIC閾舵槍hmHeight;
pPic-錛瀏et_Width(&hmWidth);
pPic-錛瀏et_Height(&hmHeight);
doublefX,fY;
鈥︹
fX=(double)pDC-錛濭etDeviceCaps(HORZRES)*(double)hmWidth/((double)pDC-錛濭etDeviceCaps(HORZSIZE)*100.0);
fY=(double)pDC-錛濭etDeviceCaps(VERTRES)*(double)hmHeight/((double)pDC-錛濭etDeviceCaps(VERTSIZE)*100.0);
if(FAILED(pPic-錛濺ender(*pDC,0,0,(DWORD)fX,(DWORD)fY,0,hmHeight,hmWidth,-hmHeight,NULL)))
AfxMessageBox("娓叉煋鍥懼儚澶辮觸錛");
pPic-錛濺elease();
}
else
AfxMessageBox("浠庢祦涓瑁呰澆鍥懼儚澶辮觸錛");//鍏朵腑錛屾樉紺哄伐浣滀富瑕佹槸鐢盜Picture鎺ュ彛瀵硅薄鐨凴ender鍑芥暟鏉ュ畬鎴愮殑錛岃ュ嚱鏁頒富瑕佺敤鏉ュ皢鍥劇墖鐨勬寚瀹氶儴鍒嗙敾鍒版寚瀹氱殑璁懼囩幆澧冪殑鎸囧畾浣嶇疆銆
鍘熷瀷濡傚煿鎼忕煡涓嬶細
HRESULTRender(HDChdc,//娓叉煋鍥懼儚鐢ㄧ殑璁懼囩幆澧冨彞鏌
longx,//鍦╤dc涓婄殑姘村鉤鍧愭爣
longy,//鍦╤dc涓婄殑鍨傜洿鍧愭爣
longcx,//鍥懼儚瀹藉害
longcy,//鍥懼儚楂樺害
OLE_XPOS_HIMETRICxSrc,//鍦ㄦ簮鍥懼儚涓婄殑姘村鉤鍋忕Щ
OLE_YPOS_HIMETRICySrc,//鍦ㄦ簮鍥懼儚涓婄殑鍨傜洿鍋忕Щ
OLE_XSIZE_HIMETRICcxSrc,//鍦ㄦ簮鍥懼儚涓婃按騫蟲嫹璐濈殑鏁伴噺
OLE_YSIZE_HIMETRICcySrc,//鍦ㄦ簮鍥懼儚涓婂瀭鐩存嫹璐濈殑鏁伴噺
LPCRECTprcWBounds//鎸囧悜鐩鏍囧浘鍏冭懼囩幆澧冨彞鏌勭殑鎸囬拡);