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