结 论 25
参考文献 26
致 谢 27
1 绪论
图形图象显示与处理是计算机领域中的一个重要课题,在人们的日常生活中应用也非常的广泛。而图像格式则是图像处理技术中的基础部分。只有深入了解了图像格式,才能实现各种格式的转换,进行图像的变换处理等。目前流行的图像格式种类繁多,如BMP、TIFF、PNG、GIF、EG等,此外还有一些非主流的图像格式如DXF、WMF、TGA 等,这些图像格式都有其各自的优缺点,适用于不同的场合。本说明书分析了几种常见的图像文件格式并使用MFC实现了图像的读取,显示,保存,图像处理等。
1.1 开发背景
MFC是微软基础类(Microsoft Foundation Classes)的简称,是一种Application Framework,随微软Visual C++ 开发工具发布。MFC实际上是微软提供的,用于在C++环境下编写应用程序的一个框架和引擎,VC++是WinDOS下开发人员使用的专业C++ SDK(Standard SoftWare Develop Kit,专业软件开发平台),MFC就是挂在它之上的一个辅助软件开发包。
MFC是面向对象程序设计与Application framework的完美结合,他将传统的API进行了分类封装,并且为程序员创建了程序的一般框架,MFC是对WindowsAPI的封装,大大简化了程序员的工作[1]。
面对底层程序,MFC能很轻松的与Windows API或驱动程序结合,就是在自己的代码中直接使用API函数,而API和驱动程序的资料都是以C语言为基础的,这使得VC程序员能够更轻松的使用Windows API[1]。这使得入门时VC程序员要付出更多的努力来学习,但是一旦掌握后,开发其他领域的程序或使用第三方软件时,如工业控制类的程序,由于底层的程序都是用C语言编写,VC程序员能够更快的掌握该领域的编程技术。这就说明VC实际上是一种入门困难,但是扩展学习却很轻松的语言框架[3]。如果既限于某一领域的话VC毫无优势可言,但是如果开发一个新的领域的应用程序或者该程序涉及多个应用领域的话,可减少重复学习的频率和难度,VC的优势会立刻显现出来。
1.2 有关图像文件浏览工具
在目前比较流行的图像显示处理软件有Photoshop,光影魔术手,AutoCAD等。这些图像处理软件无疑是很强大的,能够完成很多功能,对于专业的用户来说,是最好的选择。但对于一些电脑知识薄弱,只能进行简单操作的用户来说,使用这些软件是很困难的,当然,使用系统自带的图像显示处理工具也是可以的,但功能无疑就很弱。基于这一现状,开发出一款图像处理工具,能够实现图像的显示、旋转、缩放、黑白处理、水平镜像并且可以进行简单图像去噪以及添加水印、加密等这些能满足用户基本需求的功能是很有必要的。本说明书就是该软件从需求分析到设计实现的经过。
2 相关技术
2.1 有关图像
2.1.1 数字图像
计算机只能处理数字信号,因此,用计算机能够处理的也只能是数字图像。数字图像常用矩阵来描述。一幅M×N个像素的数字图像, 其像素灰度值可以用M行、N列的矩阵[G]表示:
在存储数字图像时, 一幅M行、 N列的数字图像(M×N个像素), 可以用一个M×N的二维数组T表示。图像的各个像素灰度值可按一定顺序存放在数组T中。 习惯上把数字图像左上角的像素定为第(1,1)个像素, 右下角的像素定为第(M,N)个像素。若用i表示垂直方向, j表示水平方向, 这样, 从左上角开始, 纵向第i行, 横向第j列的第(i,j)个像素就存储到数组的元素T(i,j)中。数字图像中的像素与二维数组中的每个元素便一一对应起来。应注意到数组元素的下标越靠右其值越大, 与x-y坐标系是一致的,但纵向越向下越大,与x-y坐标系相反。