C+课程设计.doc_第1页
C+课程设计.doc_第2页
C+课程设计.doc_第3页
C+课程设计.doc_第4页
C+课程设计.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

九江职业技术学院信息工程系c#课程设计报告 班级:软件0902 姓名:课题名称:图片管理器指导老师: 完成时间:2011年4月16日目录一概述.3 1.1背景.3 1.2开发与运行环境.3二需求分析.4三系统设计.4四详细设计.5 4.1界面设计.5 4.2代码设计.7五结束语.111、 概述1.1背景由于对于现在使用电脑的大部份用户来说,在进行图片查看浏览的时候都会用到图片管理器,而对于图片的处理大部份也都是一些具有专业图片处理知识的人才会做的。对于一些特别的观看效果来说,我们用一些专业的看图软件是高射炮打蚊子,仅仅为了看图而用这样一些软件是不合算的,我们必须花费一些时间去学习这些软件,因为越是功能强大的软件,往往使用起来越复杂。这是一个很现实的规律。对于一般的用户来说,他们说不定连这个软件都不知道。现在的图片处理和浏览的软件,要不就是专门对图片处理的软件,要不只能对图片平面进行浏览的。很少具有同时两样都具有而且还是一些即简单又实用的软件来对图片进行浏览处理。目前常用的专门对于图片的处理软件有adobe pshotoshop,firework。而对于对于图片浏览,最常用的就是windows自带的windows图片浏览器了,还有就是acdsee图片浏览器。windows图片浏览器和acdsee图片浏览器呢,前者功能:图片浏览,查看,而且还可以查看传真,对图片进行放大缩小查看,进行复制,删除。打印。acdsee功能:不但具有前者的功能,而且附加了许多的功能,如:图片的获取、管理、浏览、优化甚至和他人的分享!使用acdsee,你可以从数码相机和扫描仪高效获取图片,并进行便捷的查找、组织和预览。图片编辑工具,轻松处理数码影像等等,还能进行批量处理。对于这几款软件的各有不同的功能和不足综合分析如下:l adobe photoshop,firework,这两款软件是专门的对图片的处理,而不对图片进行浏览,虽说可以用来浏览图片,但是用起来比较单一,也就是比较麻烦,比较单一的查看一张图片而已。l windows图片浏览器和acdsee图片浏览器:前者呢只有简单的功能,而后者虽说功能来说就特别的多了,但是这些功能都比较复杂,而且比较专业,对于大部分非计算机专业的用户来说根部就不知道怎么用,也不知道那些功能的专业术语的意思,也就谈不上用了。而对于这些功能的发挥也只有对于那些专业的数码照片处理的人来说就再好不过了。只不过对于普通的电脑用户来说,显得大材小用了些。1.2开发与运行环境图片管理器的开发与运行环境如下:开发环境:windows xp开发工具:microsoft visual studio2008 c#硬件环境: cpu:2.6ghz、内存:2g、硬盘:320g运行环境:windows 2000/xp/20032、 需求分析本软件为一个简单而且很实用的动态图片查看的工具,不但可以进行图片的一些简单查看,浏览操作,处理,而且还可以进行幻灯片的自动播放等功能,是一款比较适合广大普通用户和非计算机专业的用户的图片查看处理软件,本软件不但界面友好,功能齐全,而且操作简单。是款比较容易操作,实用的图片管理软件。我们从用户角度,把软件功能的实现变得简单,易于操作。对于一个简单的看图软件来说,首要的功能就是要能流畅地以各种方式,浏览不同格式的图片。其次,要能够简单地对图片进行调整,使其有更好的效果。在第一部分背景中,我们已经分析了现在常用的两款看图、做图软件adobe photoshop,firework的优势和不足,我们做的小软件当然不能跟这些大公司的软件相比,但是我们也有自己的特点,它操作简便,界面清新,方便地实现了用户所需要的一些功能。在这款软件中我们可以以浮雕、反色、锐化、柔化等各种状态来对图片进行浏览,还可以在图片框中以居中、满图片框和自动大小来进行浏览。如果想让它自动播放,可以进入幻灯片模式进行自动播放。这个软件还有一些对图片进行调整的小功能,方便用户使用,在亮度和对比度方面处理好了以后还可以对图片进行保存。3、 系统设计根据系统功能分析,经过模块化的分析得到如下图所示的系统功能模块结构图。主窗体对处理好的图片进行打印对处理好的图片进行保存 图片特效处理 图片播放效果 自动幻灯片播放 图片调整 打开文件夹添加输出模块处理模块导入模块上下、左右、两边拉伸居中、拉伸和收缩黑白、反色、浮雕水平遮罩、垂直遮罩图片翻转图片雾化图片锐化和柔化图片扩展图片对比度调整图片亮度调整4、 详细设计4.1界面设计1、图片管理器主界面如下图:2、图片幻灯片播放界面如下图:2、图片播放界面如下图:4.2代码设计1、图片打开、保存及打印: a.打开图片 private void 打开图片toolstripmenuitem_click(object sender, eventargs e) openfiledialog1.filter = *.jpg,*.jpeg,*.bmp;*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf; openfiledialog1.showdialog(); fpath = openfiledialog1.filename; picturebox1.image = image.fromfile(fpath); image1 = new bitmap(fpath); picturewidth = image1.width.tostring(); pictureheight = image1.height.tostring(); toolstripstatuslabel2.text = 图片名为: + fpath + 宽度: + picturewidth + 高度: + pictureheight; b.保存图片 private void 保存图片toolstripmenuitem_click(object sender, eventargs e) try savefiledialog1.filter = bmp|*.bmp|jpeg|*.jpeg|gif|*.gif|png|*.png; if (savefiledialog1.showdialog () = dialogresult.ok) string picpath = savefiledialog1.filename ;/保存文件的路径及文件名 string pictype = picpath.substring(picpath.lastindexof(.) + 1, (picpath.length - picpath.lastindexof(.) - 1); switch (pictype) /利用switch条件语句实现图片类型的转换 case bmp: bitmap bt = new bitmap(fpath); bt.save(picpath, imageformat.bmp ); break; case jpeg: bitmap bt1 = new bitmap(fpath); bt1.save(picpath, imageformat.jpeg ); break; case gif: bitmap bt2 = new bitmap(fpath); bt2.save(picpath, imageformat.gif ); break; case png: bitmap bt3 = new bitmap(fpath); bt3.save(picpath, imageformat.png ); break; catch (exception ex) messagebox.show(ex.message, 提示, messageboxbuttons.ok, messageboxicon.information); c.打印图片 private void 打印toolstripmenuitem_click(object sender, eventargs e) printpreviewdialog1.document = printdocument1; printpreviewdialog1.showdialog(); private void printdocument1_printpage(object sender, system.drawing.printing.printpageeventargs e) int printwidth = printdocument1.defaultpagesettings.papersize.width; /打印纸张的宽度和高度 int printheight = printdocument1.defaultpagesettings.papersize.height; if (convert.toint32(picturewidth) convert.toint32(pictureheight) /如果图片的宽度大于纸张的宽度 bitmap bitmap = (bitmap)bitmap.fromfile(fpath); bitmap.rotateflip(rotatefliptype.rotate90flipxy);/旋转90度显示 picturebox pb = new picturebox(); pb.image = bitmap; single a = printwidth / convert.tosingle(pictureheight); e.graphics.drawimage(pb.image, 0, 0, convert.tosingle(pictureheight) * a, convert.tosingle(picturewidth) * a); else single a = printwidth / convert.tosingle(picturewidth); e.graphics.drawimage(image.fromfile(fpath), 0, 0, convert.tosingle(picturewidth )* a, convert.tosingle(pictureheight) * a); 2、图片调整:以亮度调整为例 private void trackbar1_scroll(object sender, eventargs e) bitmap b = new bitmap(ig); bitmap bp = kilighten(b, trackbar1.value);/调用kilighten picturebox1.image = bp; public static bitmap kilighten(bitmap b, int degree) if (b = null) return null; if (degree 255) degree = 255; try int width = b.width; int height = b.height; int pix = 0; bitmapdata data = b.lockbits(new rectangle(0, 0, width, height), imagelockmode.readwrite, pixelformat.format24bpprgb); unsafe byte* p = (byte*)data.scan0; int offset = data.stride - width * 3; for (int y = 0; y height; y+) for (int x = 0; x width; x+) for (int i = 0; i 3; i+) pix = pi + degree; if (degree 0) pi = (byte)math.min(255, pix); p += 3; p += offset; b.unlockbits(data); return b; catch return null; 3、图片幻灯片放映: private void timer1_tick(object sender, eventargs e) getpic(); i+; private void getpic() if (i fsinfo.length) string filetype = fsinfoi.tostring().substring(fsinfoi.tostring().lastindexof(.) + 1, (fsinfoi.tostring().length - fsinfoi.tostring().lastindexof(.) - 1); /获取文件类型 filetype = filetype.tolower();/转换为小写 if (filetype = jpg | filetype = png | filetype = bmp | filetype = gif | filetype = jpeg) picturebox1.image = image.fromfile(filepath + fsinfoi.tostring(); 4、 图片播放效果: 以反色效果为例 private void 反色效果toolstripmenuitem_click(object sender, eventargs e) if (this.picturebox1.image != null) int height = this.picturebox1.image.height; int width = this.picturebox1.image.width;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论