一、引言
图像处理与分析软件都涉及到图像文件的读写与绘制,以及位图信息的获取与设置等基本操作,需要编写相应的函数来实现这些功能。然而,图像文件类型的多样性以及文件格式的复杂性,导致图像读写函数的实现费时费力,且易出错。事实上,没有必要去重复这些基础工作。相反,可以借助于现有的图像处理库,如FreeImage、ImageLoad、CImage、ImageJ、IPL等来实现这些基本功能,简化图像处理与分析软件的开发工作,从而把更多的精力放在更高级、面向具体问题的图像处理与分析算法的设计上,以提高开发效率。本文将以单文档应用程序为例,简要介绍利用Visual C++ 6.0下开发基于FreeImage的图像处理软件的基本方法。
二、FreeImage简介
FreeImage是一款免费的、开源的、跨平台(Windows、Linux和Mac OS X)的,支持20多种图像类型的(如BMP、JPEG、GIF、PNG、TIFF等)图像处理库。其最大优点就是采用插件驱动型架构,具有快速、灵活、简单易用的特点,得到了广泛使用。相关的源码、库文件及帮助文档可以从http://freeimage.sourceforge.net/免费下载使用。
FreeImage的主要功能有多格式位图的读写;方便的位图信息获取;位深度转换;位图页面访问;基本的几何变换和点处理;通道合并与混合等。FreeImage暂时不支持矢量图形和高级图像处理,位图绘制需要由用户来完成。
FreeImage中的所有函数都以FreeImage_开头,如图像文件的读写函数分别为FreeImage_Load和FreeImage_Save。FIBITMAP数据结构保存着位图信息和像素数据,是FreeImage的核心。
三、初始化FreeImage
FreeImage主要包含头文件FreeImage.h、静态链接库FreeImage.lib、FreeImaged.lib,动态链接库FreeImage.dll和FreeImaged.dll。其中,以d结尾的库文件用于调试版,其余用于发行版。为了在VC中使用FreeImage,需要将上述文件复制到相应目录下。将FreeImage.h复制到VC98\Include\中,FreeImaged.lib和FreeImage.lib复制到VC98\Lib\中,FreeImaged.dll和FreeImage.dll复制到system32目录下。
|