1.FreeImage的图像加载
FreeImage 是插件驱动的,每种位图的读写函数实际上就是一个插件模块。采用插件驱动型构架便于功能扩展,通过创建或引入新的插件,可以支持新的图像类型。为便于维护打开的位图,在文档类添加FIBITMAP 型指针m_pFI ,用以指向打开的位图。在构造函数中将其置为空,在析构函数中调用FreeDIB 将其释放。
2.图像加载步骤
(1).加载图像
调用库函数FreeImage_GetFileType 由文件头分析文件类型,若不能识别,则调用库函FreeImage_GetFIFFromFilename 从文件扩展名判断文件类型。若是支持的图像文件类型,则调用库FreeImage_FIFSupportsReading 判断是否支持该位图类型的读操作,若支持则调用库函数FreeImage_Load 加载位图。
在文档类中添加成员函数LoadDIB,实现位图读入功能,代码如下:
FIBITMAP* CDIPDoc::LoadDIB(LPCTSTR lpszPathName, int flag){
FREE_IMAGE_FORMAT fif = FIF_UNKN