开发者社区 问答 正文

怎么从本地磁盘中读取图片

本地磁盘中指定的文件夹中存有很多图片,图片的名称是:x轴坐标加上下划线加上y轴坐标加上.png(x轴坐标_y轴坐标.png)。如何解析图片名称,然后通过参数(x轴y轴)来判断那张图片比较符合参数的坐标。最后显示在jsp中。

展开
收起
蛮大人123 2016-03-17 14:11:03 3140 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪
    //参数 图片路径,窗口句柄,图片宽,高
    HRESULT ShowPic(char *lpstrFile,HWND hWnd,int nScrWidth,int nScrHeight) 
    { 
     HDC hDC_Temp=GetDC(hWnd); 
     
     IPicture *pPic; 
     IStream *pStm; 
     
     BOOL bResult; 
     
     HANDLE hFile=NULL; 
     DWORD dwFileSize,dwByteRead; 
     
     //打开硬盘中的图形文件 
     hFile=CreateFile(lpstrFile,GENERIC_READ, 
      FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL); 
     
     if (hFile!=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); 
     
     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; 
     } 
    }  
    2019-07-17 19:05:19
    赞同 展开评论
问答分类:
问答地址: