版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于MFC的图片浏览器的设计与实现1ppt课件
概述
1、选题的目的和意义2、本文所做的主要工作3、软件开发平台及编程模式4、图像格式分析5、软件设计与实现6、本设计关键技术及难点7、软件测试与改进思想ppt课件选题的目的和意义
图像是现代信息社会中最基本的信息,它使信息变得栩栩如生,更加符合人们的日常交流习惯,因此它成为人类获取和交换信息的主要来源。如今数字图像处理的应用日益广泛,逐步成为信息科学、工程学、医学等许多学科的重要基础,同时作为一种实用技术广泛应用于军事、气象、交通、探矿、水利、农业甚至娱乐等领域。尤其是价格低廉的高性能计算机和诸如数码相机及扫描仪这样的图像采集设备出现后,数字图像处理技术被大量的应用到影视、游戏等公众及娱乐领域,与人类的生活密切相关。处理信息量巨大,要求处理速度极高,实时产生高质量的图形图像是我们不断的追求目标。因此本选题具有较好好的实用价值和意义。ppt课件本文所做的主要工作1、详细分析了当今流行的各种图像格式的编码与解码方法。2、利用MicrosoftVisualC++6.0作为开发工具,使用MFCApplicationFramework作为软件的基本架构,设计并开发了一个图片浏览器。3、实现了对BMP、PCX、TGA、JPEG、GIF图像格式的图片进行读、写、显示等基本功能。4、利用图像处理中一些变换算法,实现了图像的放大、缩小、旋转及百叶窗、马赛克等显示特效。5、实现了各种图片格式的转换功能。6、对所开发的软件进行了测试并提出了改进意见。ppt课件软件开发平台及编程模式本软件采用C++来进行图像编程的主要原因是:1、C++代码被编译成汇编语言,可以直接在处理器上运行,效率很高。
2、C++直接控制内存的分配和释放,这虽繁琐,加大了编程的负担,但却能有效地控制内存的使用。3、使用C++进行图像处理编程具有更大的灵活性。而在以C++为核心语言的可视化编程工具中,MicrosoftVisualC++6.0以其自身许多优异的特性而获得了最为广泛的应用。鉴于以上原因,本设计使用MicrosoftVisualC++6.0作为软件的开发平台。
ppt课件图像格式分析用数字来表示图像有不同的格式。因此一个通用的图像处理软件应该能支持多种不同的图像格式。本设计所实现的图片浏览软件支持以下几种在图像处理领域及实际应用中使用的图像格式:BMP、PCX、TGA、JPEG、GIF。由于图像质量的提高是建立在图像数据的增大的基础上的,而图像数据量的增大将不可避免地减低图像处理的速度,并且给存储和传递带来困难。因此,如何有效地控制数字图像的存储量已成为数字图像处理的一项重要课题。数据压缩技术是控制数据量的基本技术。各种图像格式都可以采用一种,甚至多种不同的数据压缩算法来压缩数据量,因此图像格式和压缩算法是密切相关的。而开发图像处理软件也应首先了解图像的编码及解码方法。ppt课件BMP图像
BMP图像即我们通常所说的“位图”,是Windows系统中最为常见的图像格式。经常存储为我们常见的BMP为后缀的位图文件。BMP位图文件包括4部分:1、位图文件头结构BITMAPFILEHEADER2、位图信息头结构BITMAPINFOHEADER3、位图颜色表RGBQUAD4、位图像素数据ppt课件PCX图像
PCX是Zsoft公司研制的一种常用图像格式,也是在PC机上使用时间最久的一种位图格式。PCX的最新版本支持24位色彩(256色的调色板或全24位RGB),图像的大小可达64k×64k个像素。PCX采用游程长度编码来压缩数据,但是有些情况下压缩效率不高,尤其是对于扫描图像或视频图像。
ppt课件TGA图像
TGA包含了多种变体,TGA文件的第三字节用来区别不是的TGA文件。该字节的值(二进制整数)及对应的文件类型如下:0 —
文件中没有图像数据1 —
未压缩的,颜色表图像2 —
未压缩的,RGB图像3 —
未压缩的,黑白图像9 —
游程长度(Runlength)编码的颜色表图像10 —
游程长度(Runlength)编码的RGB图像11 —
压缩的,黑白图像32 —
使用Huffman,Delta和Runlength编码的颜色表图像33 —
使用Huffman,Delta和Runlength编码的颜色映射图像,四叉树类型处理ppt课件JPEG图像
JPEG的全称是JointPhotographicExpertsGroup,是由专家组制订的用于连续色调(包括灰度和彩色)静止图像的压缩编码标准。JPEG标准的压缩编码算法是“多灰度静止图像的数字压缩编码”。JPEG标准包括3部分,即编码器、译码器和交换格式。编码器将原始图像的编码压缩成压缩数据,译码器将压缩的图像数据还原成原始图像数据。图像压缩数据以一定的交换格式存储,格式中包括编码过程中采用的码表等。ppt课件GIF图像
GIF全称为GraphicsInterchangeFormat,文件由CompuServe公司开发并持有该图形文件格式的版权。GIF图像是基于颜色表存储的,即图像中每一点的存储数据是该点的颜色对应于颜色列表(即调色板)的索引值。GIF图像最多只支持8位存储位,即最多支持256色图像。GIF文件内部分成许多存储块,用来存储多幅图像或者是决定图像表现行为的控制块,可用于实现动画和交互式应用。GIF文件使用LZW压缩算法压缩图像。
ppt课件软件设计与实现需求分析总体设计
软件界面设计详细设计与实现ppt课件需求分析功能需求:1、可以打开BMP、PCX、TGA、JPEG及GIF图像。2、打开的图像,用户均能另存为任意一种格式,以实现图像格式的转换。3、实现图片的放大、缩小,还原。4、可以对图像进行90度、180度旋转。5、可以直接调用Windows画图程序打开图片并进行编辑。6、软件提供“上一张”、“下一张”功能。7、可以进行全屏幕浏览,并提供“幻灯片播放”的功能,自动显示当前文件夹下的所有图像。ppt课件需求分析8、按F11键可以切换全屏、非全屏浏览,同时,在进行全屏幕浏览时按ESC键也可以退出全屏状态。9、在载入图片时,提供各种显示效果,用户也可以选择让系统随机选择效果。10、在查看图片时,用户也可以随时显示“水平百叶窗”、“垂直百叶窗”、“马赛克”、“向上扫描”、“向下扫描”效果。11、在查看图片时,可以选择从当前目录删除该图片,并将其放入系统回收站中。12、在窗口的用户区右键单击鼠标,则弹出快捷菜单,显示常用操作命令。ppt课件需求分析性能需求1、硬件平台要求:由于本软件为单机软件,不需进行大量的数据读写和数据交换,故对系统硬件配置的要求并不高,只要能够平稳运行Windows操作系统的硬件平台,都能够使用本软件。2、软件环境要求:本软件运行平台为MicrosoftWindows98/Me/NT/2000/XP/2003。ppt课件总体设计以MVC(Model-View-Controller)应用程序结构划分的模块如图所示。
PictureViewerModelViewController图像解码、编码模块图像显示模块图像变换模块PCX模块TGA模块BMP模块JPEG模块GIF模块OnDraw()状态栏信息显示图像缩放模块图像旋转模块全屏浏览模块显示特效模块ppt课件软件界面设计
根据软件的需求分析及图片浏览软件的特点,本设计中软件采用单文档界面(SDI),包括标准菜单、工具栏和状态栏。工具栏上为常用菜单命令按钮,如“打开”、“保存”、“上一张”、“下一张”、“放大”、“缩小”、“旋转”等。另外,在全屏显示时提供浮动工具栏,并且在用户区右击鼠标可以弹出快捷菜单。ppt课件软件界面设计软件的整体界面软件菜单及工具栏软件在全屏状态下的浮动工具条及右键菜单
ppt课件详细设计与实现软件核心数据结构LanImage类设计分别设计了BMP、PCX、TGA、JPEG、GIF解码、编码模块图像显示模块全屏浏览模块图像缩放模块图像旋转模块图像特效显示ppt课件详细设计与实现软件核心数据结构LanImage类设计
图像显示模块
全屏浏览模块
图像缩放模块
图像旋转模块图像特效显示
ppt课件详细设计与实现前面已分析过BMP、PCX、TGA、JPEG、GIF图像的存储格式,在本设计中,针对不同的格式设计了不同的解码与编码函数。格式名 解码函数 编码函数BMP ReadBmp() SaveBmp()PCX ReadPcx() SavePcx()TGA ReadTga() SaveTga()由于JPEG和GIF的编码较为复杂,并且时间有限,故在本设计的实现过程中,JPEG和GIF的解码、编码模块调用了第三方的读写库。
ppt课件关键技术及难点资源的分配和释放
使用JPEG和GIF读写库时缓冲区格式的转换
实现旋转时对内存的位操作
直接对内存中图像数据进行操作实现的特效
右键菜单的实现
浏览功能的实现
ppt课件关键技术及难点资源的分配和释放
由于C++中内存资源的分配和释放均由程序员控制,而本程序多处用到了在内存中开辟缓冲区,因此在本设计的实现过程中,对内存的管理便尤为重要。例如在打开一张新图片时,就要对上一张图片的缓冲区进行释放,否则会造成内存泄漏。但是由于JPEG和GIF调用了第三方的读写库,其使用的内存缓冲区格式与LanImage类中使用的不同,因此,在进行缓冲区的释放时,首先要判断上一张图片是何种格式,即是否使用了第三方的读写库,如果使用了,则应采取不同的资源释放方式。本文是在LanImage类中加入BOOL型变量m_bReadWithLibSupport来判断是否使用了JPEG和GIF读写库的。
ppt课件关键技术及难点使用JPEG和GIF读写库时缓冲区格式的转换
在使用JPEG和GIF读写库时,其解码后的数据缓冲区格式是不同的,而图像的显示都是通过LanImage::Draw()函数实现的。Draw()函数只能读取LanImage类中m_pImage指向的缓冲区。因此,在图像打开时需要进行缓冲区的转换。另外,如果打开的是BMP、TGA、PCX格式的图像,而用户选择保存为JPEG或GIF图像,那么又要将m_pImage指向的缓冲区转换为JPEG和GIF读写库所使用的缓冲区。ppt课件关键技术及难点实现旋转时对内存的位操作
在对单色和4位色图像进行旋转时,需要进行位操作。以单色位图为例,一个字节包含8个像素,那么在旋转90度时,一个字节中的不同位,会变换到不同的扫描行,也就是说要将字节中的位一一取出,计算其位置,并重新放到新字节的合适的位中。
ppt课件关键技术及难点直接对内存中图像数据进行操作实现的特效
本文在实现特效时采用了两种完全不同方法。一种是利用改变Draw()函数参数实现的特效。另一种即是先在内存中对图像数据变换生成特效过程中的每一帧图像,然后调用Draw()函数直接将其显示出来。以马赛克效果为例,如果使用Draw()函数实现,由随机函数确定显示哪一块后,则直接将该块显示出来。而使用内存特效,在消隐的过程中,在此时应该将原始图像数据中的该块对应的数据置为白色,而以前已置为白色的数据块仍保持白色不变;在恢复过程中则正相反,是由原始图像数据代替白色数据。ppt课件关键技术及难点右键菜单的实现
利用MFC函数TrackPopupMenu()实现右键菜单。但是,右键菜单的实现关键是如何更新UI界面的问题。例如,对于“缩小”命令,当连续进行缩小,显示比例减为负值时,应该禁用“缩小”命令,此时,右键菜单中该命令项应该变为灰色。对于普通菜单和工具栏,可以接收UPDATE_COMMAND_UI消息,并在该消息的处理函数中改变命令项的状态。而右键菜单是无法接收该消息的,故必须使用其他的方法。本文采用CMenu类中的EnableMenuItem()函数来实现。ppt课件关键技术及难点浏览功能的实现
在打开一幅图片后,可以使用“上一张”、“下一张”命令或按“PageU
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2.3 细胞中的糖类和脂质 课件高一上学期生物人教版必修1
- 铁路行车规章课件-调度员作业设备运用和列车运行线识别及绘制
- 2026年注册城乡规划师之城乡规划原理考前冲刺练习含完整答案详解(历年真题)
- 2026年工地入场安全教育考核押题宝典模考模拟试题及参考答案详解【考试直接用】
- 2026年一级建造师之一建水利水电工程实务通关试题库附参考答案详解AB卷
- 【低空经济】无人机管理系统设计方案
- 广东东莞市南城阳光实验中学2025-2026学年八年级第二学期期中教学质量自查历史试卷(含答案)
- 2026年幼儿园如果制作
- 2026年幼儿园防止摔伤
- 2025福建福州冶城发展集团有限公司下半年招聘9人笔试参考题库附带答案详解
- 北京市西城区2026年高三一模英语试卷(含答案)
- 2024年宁夏中考数学真题
- 《华为OLT产品介绍》课件
- 2025年中考英语专题-阅读六选五解题策略教学设计
- ZPW-2000A型无绝缘移频自动闭塞系统说明书
- 10S505 柔性接口给水管道支墩
- SYT 0452-2021 石油天然气金属管道焊接工艺评定-PDF解密
- 四年级下册劳动教育全册教学课件
- 日本的大化改新(课件)
- 影响我最大的一个人作文讲评
- 装饰装修项目技术标文件
评论
0/150
提交评论