3682|6

66

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

在EVC下怎么显示.JPG格式的图片? [复制链接]

请问各位高手,在EVC下显示.JPG格式的图片要怎么做啊?因为.BMP格式的图片太占内存了.(用API做的)

最新回复

请问这个错误要怎么解决?  详情 回复 发表于 2008-1-28 11:30
点赞 关注

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
JPG的话,建议您用.NET吧。
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
VOImage
 
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

4
 
这个好多人问过了,自己搜下eeworld的月经贴吧,网上有人实现了一个可显示函数,不占多少内存那种。下来研究下。
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

5
 
谢谢各位指点,我找找!~~
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

6
 
下面是在网上找的代码,可是不知为什么报这样的错误?
Mywork.obj : error LNK2019: unresolved external symbol __imp__OleLoadPicture referenced in function "long __cdecl ShowPic(char *,struct HWND__ *,int,int)" (?ShowPic@@YAJPADPAUHWND__@@HH@Z)
Mywork.obj : error LNK2001: unresolved external symbol _IID_IPicture
Mywork.obj : error LNK2019: unresolved external symbol __imp__CreateStreamOnHGlobal referenced in function "long __cdecl ShowPic(char *,struct HWND__ *,int,int)" (?ShowPic@@YAJPADPAUHWND__@@HH@Z)
emulatorDbg/Mywork.exe : fatal error LNK1120: 3 unresolved externals


//   lpstrFile:文件名(最好是包含路径在内)     
//   hWnd     
//   nScrWidth:输出图片的宽度     
//   nScrHeight:输出图片的高度     
//   nScrWidth、nScrHeight是输出图片的实际大小,换而言之是指缩放后的尺寸      
HRESULT  ShowPic(char *lpstrFile,HWND hWnd,int nScrWidth,int nScrHeight)     
{     
    HDC   hDC_Temp=GetDC(hWnd);     

    IPicture   *pPic;     
    IStream    *pStm;     
//    AfxOleInit();  
    BOOL   bResult;        
    HANDLE   hFile=NULL;     
//    DWORD   dwFileSize,dwByteRead;   
        LONG  dwFileSize;
        DWORD dwByteRead;
   //打开硬盘中的图形文件     
    hFile=CreateFile(_T("lpstrFile"),GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);     
    if(hFile!=NULL)//INVALID_HANDLE_value)     
       {     
         dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数     
         if(dwFileSize==0xFFFFFFFF)     
         return   E_FAIL;     
       }     
    else   return   E_FAIL;      
      
//分配全局存储空间     
   HGLOBAL   hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);     
   LPVOID    pvData  = NULL;        
   if(hGlobal == NULL)     
   return  E_FAIL;        
   if((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块     
   return  E_FAIL;        
   ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区        
   GlobalUnlock(hGlobal);        
   CreateStreamOnHGlobal(hGlobal,   TRUE,   &pStm);
//装入图形文件     
   bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);     
//   (LPSTREAM lpstream, LONG lSize, BOOL fRunmode,REFIID riid, LPVOID FAR* lplpvObj);  REFIID riid//创建的Com对象的接口标识符   
   if(FAILED(bResult))     
   return   E_FAIL;        
   OLE_XSIZE_HIMETRIC   hmWidth;//图片的真实宽度     
   OLE_YSIZE_HIMETRIC   hmHeight;//图片的真实高度     
   pPic->get_Width(&hmWidth);     
   pPic->get_Height(&hmHeight);      
//将图形输出到屏幕上(有点像BitBlt)     
  bResult=pPic->Render(hDC_Temp,0,0,nScrWidth,nScrHeight,0,hmHeight,hmWidth,-hmHeight,NULL);        
  pPic->Release();         
  CloseHandle(hFile);//关闭打开的文件        
  if(SUCCEEDED(bResult))     return   S_OK;      
  else  return   E_FAIL;      
}
 
 
 

回复

85

帖子

0

TA的资源

一粒金砂(初级)

7
 
请问这个错误要怎么解决?
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表