图6 轻松魔图界面
3.6自动播放界面
自动播放主要是将相册内的照片进行循环播放,并以不同的效果展示出来,如百叶窗显示、上下对接显示、左右对接显示。自动播放先将路径下的照片全部添加到Arraylist对象中,使用while循环控制Arraylist对象的下标来实现照片的不断播放,每张照片的效果则是通过switch语句判断随机数来调用不同的显示函数。如水平对接显示函数为例介绍下图片效果的实现,该函数主要是通过GetPixel(),SetPixel()方法对于不同的区域先赋值,经过刷新显示出来水平对接图片的效果。先获得图片的宽和高,将高度一分为二,在两个for循环中分别给高度0到height/2和height/2到height的两个区域的各个像素赋值,每个for循环一次赋值一行的像素,在大循环中使用Graphics类的Drawing()方法和Refresh()方法来把图片画出,实现水平对接显示图片。
为了使相册设计的更人性化,给它增加了休眠模式,休眠状态主要是在自动播放时进入的,并可在该界面内设置休眠的开始时间和结束时间。功能实现是使用了timer来监视时间不断的判断是否到达设定的休眠时间以进入休眠模式。自动播放界面如图7所示。
图7 自动播放界面
3.7休眠界面
休眠界面主要是以模拟时钟或以数字时钟显示当前时间,该界面的设计主要是为了设计的人性化,即在人们休息的时间段内可以显示时间作为时钟,给它增加了新的应用。在timer1_Tick事件获取当前时间,并调用显示时间的函数来实现时钟效果,在另一个timer事件中不断的监视时间,判断是否应该退出休眠界面。休眠界面如图8所示。
图8 休眠界面
4.系统测试
系统测试主要是找到系统中的漏洞,经过多次部署实验,主要是找整个设计的逻辑漏洞,如对照片进行删除时,没有考虑到照片是不是新打开的,若是则应该删除新的照片而不是原来进入到照片管理界面的照片;对照片进行处理返回浏览界面时应考虑用户是否想要保存,即提醒用户保存否;对于不同相册内的照片,使用打开文件控件可以打开各个相册的照片,这样就使照片分册功能不明显,但是因为是控件的使用,对此没有进行控制。系统测试还要看各个功能有没有实现预期的效果,测试后发现手动浏览照片,对照片的处理即魔图功能,休眠功能达到预期效果,但是自动播放功能中照片的动态显示功能没有达到预期效果,分析原因为采用的算法是逐像素,这样当照片较大时显示图片会比较慢,考虑通过控制支持的最大图片来实现较好的显示效果的。经过测试后,系统整体逻辑比较完整,且大部分功能达到预期效果。
5.总结
经过将近两个月的时间,终于将毕业设计完成,从选定题目、开题报告、文献综述、中期检查到现在要论文定稿,期间经历了考研复试,对于毕业设计一直处于紧张的设计与实现中。这次毕业设计我选的课题涉及一些新的知识,如图像编程这方面的接触不多,主要是想在大学的最后再学习一些新的知识,给自己一点动力。现在可以证明自己的选择是正确的,通过这次所选课题的实现,我对于图像方面有了一些新的了解,学到了很多处理图像的算法比如将图片锐化,底片处理,百叶窗显示,水平对接显示,垂直对接显示等以前完全不知道的处理图片的算法;对于Bitmap类的使用也有了新的认识,如它的GetPixel()和SetPixel()方法,用来获取和赋值指定位置的像素。还有Graphics画图类的使用,以前也仅限于画直线,矩形等,这次应用它的Drawing()方法实现了画图,它与上面Bitmap类的结合实现了图片的动态显示效果。 wince的电子相册的设计与实现+流程图+功能模块图(4):http://www.youerw.com/jisuanji/lunwen_1776.html