你好,欢迎来到电脑编程技巧与维护杂志社! [免费注册][请登录 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:杂志经典 / 图形图象处理与游戏编程
FreeImage的图像处理软件(二)
 

建立一个单文档应用程序DIP,在工程的stdafx.h文件中包含FreeImage.h,并在工程设置对话框的Link标签中分别为调试版和发行版添加FreeImaged.libFreeImage.lib。也可以在stdafx.h中自动链接FreeImage库,代码如下:

#ifdef _DEBUG

#pragma comment(lib, "FreeImaged.lib")

#else

#pragma comment(lib, "FreeImage.lib")

#endif

默认情况下,FreeImage被当作动态链接库。若需用作静态链接库,则在应用程序类的InitInstance中调用FreeImage_Initialise(0)加载FreeImage库,重载ExitInstance并在其中调用FreeImage_DeInitialise()释放FreeImage库。

四、读取图像

FreeImage是插件驱动的,每种位图的读写函数实际上就是一个插件模块。采用插件驱动型构架便于功能扩展,通过创建或引入新的插件,可以支持新的图像类型。

为便于维护打开的位图,在文档类添加FIBITMAP型指针m_pFI,用以指向打开的位图。在构造函数中将其置为空,在析构函数中调用FreeDIB将其释放。FreeDIB定义如下:

void CDIPDoc:: FreeDIB ()

{

if(m_pFI) {

    FreeImage_Unload(m_pFI);//释放位图

    m_pFI = NULL;

}

}

OnNewDocument()OnFileOpen()函数中也应调用FreeDIB,以确保建立或打开新图像时先释放以前的位图。

读取图像的基本步骤如下:

调用库函数FreeImage_GetFileType由文件头分析文件类型,若不能识别,则调用库函数FreeImage_GetFIFFromFilename从文件扩展名判断文件类型。

若是支持的图像文件类型,则调用库函数FreeImage_FIFSupportsReading判断是否支持该位图类型的读操作,若支持则调用库函数FreeImage_Load加载位图。
  推荐精品文章

·2019年9月目录 
·2019年8月目录
·2019年7月目录
·2019年6月目录
·2019年5月目录
·2019年4月目录    
·2019年3月目录   
·2019年2月目录   
·2019年1月目录  
·探析云计算下应用软件用户数据安全问题
·地理空间集束线可视化表达
·Android智能净水机APP开发(一)
·2018年12月目录  
·springAOP的思想和设计以及实现

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备06048724号,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区长春桥路5号6号楼1209室,邮编:100089