FreeImage读取图像的数据过程

    本文是在参考了summersolstice在CSDN上的《使用FreeImage写通用图像加载器》后的总结。

    首先使用

     

  • FIBITMAP* CGenericPictureReaderView::GenericLoader(const char *ptrFileName)  
  • {  
  •     FREE_IMAGE_FORMAT fif = FIF_UNKNOWN;  
  •       
  •     fif = FreeImage_GetFileType(ptrFileName);  
  •     if(fif == FIF_UNKNOWN)  
  •     {  
  •         fif = FreeImage_GetFIFFromFilename(ptrFileName);  
  •     }  
  •     if(fif != FIF_UNKNOWN && FreeImage_FIFSupportsReading(fif))  
  •     {  
  •         FIBITMAP* dib = FreeImage_Load(fif,ptrFileName,0);  
  •           
  •         return dib;  
  •     }  
  •     return NULL;  
  • }

根据图片的路径加载图片,得到 FIBITMAP,然后在

  • int width = FreeImage_GetWidth(dib);  
  •     int height = FreeImage_GetHeight(dib);  
  •     BITMAPINFO* pBitmapInfo = FreeImage_GetInfo(dib);  
  •     BYTE* pImgData = FreeImage_GetBits(dib);  
  •     RGBQUAD* pPalette = FreeImage_GetPalette(dib);

 

根据FIBITMAP得到图片的高, 宽,图像信息,数据区,和调色板。

参考:http://blog.csdn.net/summersolstice/archive/2010/01/07/5148258.aspx

posted @ 2011-06-22 20:17  daniel.deng  阅读(1129)  评论(0编辑  收藏  举报