嵌入式系统课程报告.docx
《嵌入式系统课程报告.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程报告.docx(23页珍藏版)》请在冰点文库上搜索。
嵌入式系统课程报告
《嵌入式系统》课程报告
学生姓名:
车良康
学号:
20091002977
班序号:
116092—14
指导教师:
徐战亚
中国地质大学(武汉)信息工程学院
2011年10月
题目:
仿PICASA图片浏览系统
1、引言
1.1、项目背景
Picasa是一款可帮助您在计算机上立即找到、修改和共享所有图片的软件。
每次打开Picasa时,它都会自动查找所有图片(甚至是那些用户已经遗忘的图片),并将它们按日期顺序放在可见的相册中,同时以用户易于识别的名称命名文件夹。
用户可以通过拖放操作来排列相册,还可以添加标签来创建新组。
Picasa保证用户的图片从始至终都井井有条。
Picasa还可以通过简单的单次点击式修正来进行高级修改,让用户只需动动指尖即可获得震撼效果。
而且,Picasa还可让用户迅速实现图片共享——可以通过电子邮件发送图片、在家打印图片、制作礼品CD,甚至将图片张贴到用户自己的BLOG中。
本系统将仿照Picasa的部分功能,如Picasa的缩略图浏览方式、单个图片的浏览方式、幻灯片式的图片播放等。
本系统同时添加有一些独有的功能和浏览方式。
1.2、编写目的
本文档将对本系统的详细设计方案,本系统的完成程度,以及开发人员的心得等做详尽的描述。
本文档用于,让未参与开发的人员快速了解系统细节和设计思路,并对系统的改进和维护作出宝贵建议。
1.3、设计依据
本文档将依照标准《概要设计说明书》与《模块设计说明书》的规范进行编写。
2、总体设计
2.1系统设计原则
仿Picasa图片浏览系统主要需要遵循以下几个原则:
实用性原则:
这是所有应用软件最基本的原则。
直接衡量系统的成败,每一个提交到用户手中的系统都应该是实用的,能解决用户的实际问题,否则该设计就是垃圾。
本系统必须可以使用户能够感到系统的可用性。
标准化原则:
本系统必须按照标准化的方法进行开发与设计。
为了可以与其他系统兼容,本系统必须使用标准化的接口与格式。
可靠性原则:
这也是所有应用软件最基本的原则,不可靠的系统是无法提供给用户使用的。
本系统必须是可靠的。
在用户做出一些不正确或非法操作时,本系统必须阻止此操作并给与提示。
同时,本系统必须拥有较好的容错性,在出现一般错误的情况下,不至于导致系统崩溃。
并且,在错误出现之后,可以很快的恢复到正常状态,记录下错误原因。
高效性原则:
本系统必须是高效的。
在用户访问了大型数据时,也能保持一定的效率和稳定性。
当图片分辨率过高或文件过大时,仍可以有效的、快速的响应用户的需求。
适用性和扩展性原则:
本系统必须具有一定的适用性,可以适用于大多数的操作系统。
同时,本系统必须具备一定的可扩展性。
利用可扩展的设计方案,使得本系统可以随时比较容易的扩充其功能,实现快速的再次开发。
安全性原则:
本系统必须具有一定安全性。
这里指的是在一定范围类安全,而不是绝对的安全。
2.2、设计中应用的关键技术
本系统使用Java编写,并使用Sun公司提供的各种API和JDK类库。
使用AWT包中的组件,可以很容易的开发桌面可视化程序。
本系统使用了多线程编程,用以图片的特效显示。
2.3、总体结构
2.3.1、界面结构
2.3.2、功能结构
3、界面设计
界面分为三个部分:
启动界面、主界面、浏览界面
3.1、启动界面
启动界面比较简洁,仅有一张图片显示。
图片将把本系统的LOGO以及主要风格第一时间内呈现出来。
启动图片内容与Google的Picasa系统类似。
3.2、主界面
主界面将模拟Google的Picasa系统,主要布局方式与其十分相似。
主界面包括有菜单栏、工具栏、文件夹框、略缩图框、状态栏这5个部分组成。
【菜单栏】
位置:
位于最顶部。
尺寸:
由JVM自己控制。
【工具栏】
位置:
位于菜单栏的下面。
尺寸:
宽度与主框体相等,高度为50px。
【文件夹框】
位置:
位于主框体左侧。
左上角坐标为(10,60)。
尺寸:
宽度为200px,高度为主框体高度减去150px。
【略缩图框】
位置:
位于主框体右侧。
左上角坐标为(220,60)。
尺寸:
宽度为主框体宽度减去250px,高度为主框体高度减去150px。
【状态栏】
位置:
位于最下侧。
尺寸:
宽度为与主框体相等,高度为30px。
3.3、单图浏览界面
浏览界面主要用于浏览单个图片。
界面仅由图片浏览框和工具栏组成。
【图片浏览框】位于中心。
【工具栏】位于最下侧,高度为40px。
3.4、自动播放界面
自动播放界面将以全屏显示。
3.5、单图浏览幻灯片界面
单图浏览幻灯片界面将以全屏显示。
4、系统功能设计说明
4.1、启动界面功能模块
启动界面没有可使用的功能。
仅在系统启动的时候,存在3秒左右。
实现方式:
使用一个JWindows容器来显示启动画面。
在JWindows容器中绘制一个启动图片,然后利用计时器控制此容器显示时间。
当定时时间倒时,调用此容器的setVisible(false)方法隐藏此容器,接着调用主框架JFrame的setVisible(true)方法启动主框架。
启动画面
4.2、菜单栏功能模块
菜单栏中的主要菜单有:
文件(F)、工具(T)、帮助(H)。
菜单栏
【文件(F)】
文件中包括的菜单有:
文件另存为(A)、文件重命名(R)、文件删除(D)、退出(X)。
其中的文件另存为(A)、文件重命名(R)、文件删除(D)将使用图片文件操作功能模块的对应功能(在4.6节描述)。
退出(X):
退出本系统。
点击后,弹出提示框(见图)。
选择是,则退出;选择否,取消本次操作。
实现方法:
使用JOptionPanel类来显示提示对话框。
使用File类的delete方法来实现删除操作。
退出提示对话框
【工具(T)】
工具中包括菜单有:
设置(S)。
设置(S):
点击后,将弹出设置对话框。
在设置对话框中,允许设置的项目有:
略缩图的显示大小,略缩图的水平最小间隔,略缩图的垂直间隔;略缩图的缓存大小;自动播放的时间间隔。
略缩图的显示大小:
在略缩图的列框模式下,每个略缩图的显示尺寸。
略缩图的水平最小间隔:
在略缩图的列框模式下,略缩图水平间隔由软件自动计算,但其结果不小于已设定的最小间隔。
略缩图的垂直间隔:
在略缩图的列框模式下,略缩图的垂直间隔。
略缩图的缓存大小:
在略缩图的浏览模式下,图片在内存中的缓存尺寸。
(过大将占用大量内存,过小将使图片不清晰)
自动播放的时间间隔:
自动播放功能下,每播放一张图片的间隔时间。
实现方法:
继承JDialog类来设计一个设置对话框。
其中包括JLabel、JTextField、JButton等组件。
【帮助(H)】
帮助中包括菜单有:
关于(A)。
关于(A):
点击后,弹出关于对话框。
在关于对话框中,最开头是本软件的LOGO;接下来是关于本软件的关于说明;最后是确定按钮。
关于对话框
4.3、文件夹选择功能模块
文件夹框的主要功能是提供一个可以选定本地文件夹的树结构视图。
此视图以“我的电脑”为根,以树结构遍历本地的每一个文件夹。
此视图只显示文件夹,而被选中的文件夹路径将发送至图片读取线程,进行图片读取。
实现方法:
使用JTree类来构建树形视图,并将其放入JScrollPanel容器中,以实现活动条效果。
文件夹遍历算法采用CSDN上下载的一个源码。
整体效果如下图:
整体效果:
根目录:
展开文件夹效果:
点中文件夹效果:
4.4、略缩图显示功能模块
缩略图框的主要功能是提供图片的选择与初步浏览。
此视框拥有两种不同的显示模式:
一种是缩略图列框模式,另一种是缩略图浏览模式。
两种模式的切换可以使用工具栏的模式切换按钮。
4.4.1、缩略图列框模式
此模式下,图片的缩略图以阵列的形式展现出来。
缩略图的尺寸都比较的小,以便可以容下大量的缩略图。
缩略图的大小可以在设置中进行调整。
大体效果见下图:
大体效果图
缩略图的排列方式不定,并保持图片的原始比例。
当改变主框体大小的时候,缩略图将重新算计位置和间隔,使用平均计算的方式使得摆放的位置自然均匀。
从而产生拉动主框体,图片跟随调整位置的效果。
其效果和Google的Picasa系统类似。
为每个图片绘制较细的灰色边框,并绘制阴影效果,使得图片更有立体感。
当用户用鼠标单击某一图片时,此图片将被选中,并用粗蓝矩形标出(见图)。
此时,可以对此图片进行菜单栏中的另存为、重命名以及删除操作。
选中图片以蓝色框标出
当用户用鼠标双击某一图片时,将进入浏览界面。
用户可以通过浏览界面,认真、仔细的观赏此图片。
实现方法:
所有缩略图都显示在JPanel面板中。
通过重载JPanel类的paint(Graphicsg)方法,可以对面板进行自由绘制。
使用g.DrawImage方法来绘制略缩图,而缩略图的缓存数据存放在BufferedImage对象中。
所有的BufferedImage对象使用一个LinkedList链表来管理,以达到易于存取。
4.4.2、略缩图浏览模式
此模式下,图片的缩略图以类型于播放影片的方式展现。
缩略图的尺寸比较大,以便使用户看得更清楚。
大体效果图
每次有三张图片显示出来,正中心的图片为当前图片,在最前方;左边的图片为上一张图片,在后方;右边的图片为下一张图片,在后方。
三张图片的比例不变,仅在必要时做适度放缩。
当点击当前图片时,将进入浏览界面。
当点击上一张或下一张图片时,三张图片将发生移动和渐变,直到点击的那张图片到达当前图片的位置,同时左右图片也发生变化。
变化时拥有半透明特效。
特效变化过程
实现方法:
重载JPanel类的paint(Graphicsg)方法,获取面板的自由绘制权利。
通过开启一个时间线程来控制每个图片在某一时刻的位置、尺寸以及透明度。
快速播放每一帧的图像,则会形成动画效果。
4.5、单图浏览功能模块
4.5.1、单图浏览界面
单图浏览框的主要功能是浏览单个图片,整个框将放置一张图片。
若图片尺寸小于框体的尺寸,则显示图片原始尺寸。
若图片尺寸大于框体尺寸,则按原始比例略缩到框体放得下的尺寸。
高度被限制的情况
高度被限制的情况
图片较小情况
4.5.2、单图浏览(幻灯片)
单图浏览幻灯片是模仿Picasa的单图浏览方式。
当点击单图幻灯片后,背景桌面将成暗黑色,图片就由小变大的出现在界面中。
最终,如果图片足够大,就占满整个屏幕,如果图片较小,就按实际大小显示在中心位置。
图片可以使用鼠标任意拖动,也可以利用鼠标滑轮改变图片大小。
图片较大时
图片较小时
鼠标拖动后的图片
使用鼠标滑轮调整图片大小
4.6、图片文件操作功能模块
只有当用户选定一个图片文件的时候,文件菜单中的前三项才有效。
否则弹出警告窗口来提示用户。
(使用JOptionPanel类来实现提示对话框)
没有选中图片提示对话框
4.6.1、图片另存为
功能:
将选中图片另存为一个文件。
将选中图片另存为一个文件。
此文件格式可选。
点击后,将弹出另存为对话框(系统调用,见图)。
可以选择将此图片文件保存到其他路径。
当保存的图片以存在时,则弹出提示框,询问是否替代。
(见图)
实现方式:
使用FileDialog类来显示另存为对话框。
需要设置FileDialog的文件筛选器,使得用户可以选择不同文件类型。
使用File类和ImageIO类的write方法来完成图片的另存为。
另存为对话框
文件已存在,是否替换提示对话框
4.6.2、图片重命名
功能:
对选中的图片文件进行重命名。
对选中的图片文件进行重命名。
点击后,将弹出输入对话框。
对话框仅由文本框和“确定”按钮组成。
(见图)点击确定,则被选中图片被重命名;点击取消,则取消此本次操作。
实现方式:
继承JDialog类来设计一个如下图的对话框。
对话框中包括有JTextField、JButton等组件。
重命名操作使用File类的Rename方法来实现。
重命名对话框
4.6.3、图片删除
功能:
将选中的图片文件从磁盘上删除。
将选中的图片文件从磁盘上删除。
此操作将直接将图片文件从磁盘删除,无法逆向操作。
点击后,将弹出提示对话框。
(见图)选择是,则删除文件;选择否,则取消本次操作。
实现方法:
使用JOptionPanel类来显示提示对话框。
使用File类的delete方法来实现删除操作。
删除提示对话框
4.7、屏幕截图功能模块
本模块提供屏幕的截图功能。
通过点击工具栏的截图图标或在菜单栏中选择【工具】【截图】。
点击启动后,桌面背景成暗黑色,利用鼠标在屏幕上拖动一个矩形框,再双击桌面,则会弹出保存对话框。
鼠标拖动矩形框
保存对话框
4.8、自动播放功能模块
本模块提供图片的自动全屏播放。
可以通过工具栏的自动播放图标或菜单栏【工具】【屏幕截图】来使用此功能。
点击后,桌面背景将呈暗黑色,缩略图列表中的图片将被循环自动播放,播放中存在切换特效。
(图略)
4、开发工具
开发语言
Java
开发工具
MyEclipse8.5、JDK1.7
5、系统运行环境
本系统运行环境:
WindowsXP、Windows7、MacOSx