当前位置:首页 » 图片效果 » c怎样打开jpg图片

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//鎸囧悜鐩镙囧浘鍏冭惧囩幆澧冨彞镆勭殑鎸囬拡);