C+课程设计.doc

上传人:土8路 文档编号:10309708 上传时间:2021-05-07 格式:DOC 页数:12 大小:351.50KB
返回 下载 相关 举报
C+课程设计.doc_第1页
第1页 / 共12页
C+课程设计.doc_第2页
第2页 / 共12页
C+课程设计.doc_第3页
第3页 / 共12页
C+课程设计.doc_第4页
第4页 / 共12页
C+课程设计.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C+课程设计.doc》由会员分享,可在线阅读,更多相关《C+课程设计.doc(12页珍藏版)》请在三一文库上搜索。

1、九江职业技术学院信息工程系C#课程设计报告 班级:软件0902 姓名:课题名称:图片管理器指导老师: 完成时间:2011年4月16日目录一概述.3 1.1背景.3 1.2开发与运行环境.3二需求分析.4三系统设计.4四详细设计.5 4.1界面设计.5 4.2代码设计.7五结束语.111、 概述1.1背景由于对于现在使用电脑的大部份用户来说,在进行图片查看浏览的时候都会用到图片管理器,而对于图片的处理大部份也都是一些具有专业图片处理知识的人才会做的。对于一些特别的观看效果来说,我们用一些专业的看图软件是高射炮打蚊子,仅仅为了看图而用这样一些软件是不合算的,我们必须花费一些时间去学习这些软件,因为

2、越是功能强大的软件,往往使用起来越复杂。这是一个很现实的规律。对于一般的用户来说,他们说不定连这个软件都不知道。现在的图片处理和浏览的软件,要不就是专门对图片处理的软件,要不只能对图片平面进行浏览的。很少具有同时两样都具有而且还是一些即简单又实用的软件来对图片进行浏览处理。目前常用的专门对于图片的处理软件有Adobe pshotoshop,Firework。而对于对于图片浏览,最常用的就是Windows自带的Windows图片浏览器了,还有就是ACDsee图片浏览器。Windows图片浏览器和ACDsee图片浏览器呢,前者功能:图片浏览,查看,而且还可以查看传真,对图片进行放大缩小查看,进行复

3、制,删除。打印。ACDsee功能:不但具有前者的功能,而且附加了许多的功能,如:图片的获取、管理、浏览、优化甚至和他人的分享!使用ACDsee,你可以从数码相机和扫描仪高效获取图片,并进行便捷的查找、组织和预览。图片编辑工具,轻松处理数码影像等等,还能进行批量处理。对于这几款软件的各有不同的功能和不足综合分析如下:l Adobe photoshop,Firework,这两款软件是专门的对图片的处理,而不对图片进行浏览,虽说可以用来浏览图片,但是用起来比较单一,也就是比较麻烦,比较单一的查看一张图片而已。l Windows图片浏览器和ACDsee图片浏览器:前者呢只有简单的功能,而后者虽说功能来

4、说就特别的多了,但是这些功能都比较复杂,而且比较专业,对于大部分非计算机专业的用户来说根部就不知道怎么用,也不知道那些功能的专业术语的意思,也就谈不上用了。而对于这些功能的发挥也只有对于那些专业的数码照片处理的人来说就再好不过了。只不过对于普通的电脑用户来说,显得大材小用了些。1.2开发与运行环境图片管理器的开发与运行环境如下:开发环境:Windows XP开发工具:Microsoft Visual studio2008 C#硬件环境: CPU:2.6GHz、内存:2G、硬盘:320G运行环境:Windows 2000/XP/20032、 需求分析本软件为一个简单而且很实用的动态图片查看的工具

5、,不但可以进行图片的一些简单查看,浏览操作,处理,而且还可以进行幻灯片的自动播放等功能,是一款比较适合广大普通用户和非计算机专业的用户的图片查看处理软件,本软件不但界面友好,功能齐全,而且操作简单。是款比较容易操作,实用的图片管理软件。我们从用户角度,把软件功能的实现变得简单,易于操作。对于一个简单的看图软件来说,首要的功能就是要能流畅地以各种方式,浏览不同格式的图片。其次,要能够简单地对图片进行调整,使其有更好的效果。在第一部分背景中,我们已经分析了现在常用的两款看图、做图软件Adobe photoshop,Firework的优势和不足,我们做的小软件当然不能跟这些大公司的软件相比,但是我们

6、也有自己的特点,它操作简便,界面清新,方便地实现了用户所需要的一些功能。在这款软件中我们可以以浮雕、反色、锐化、柔化等各种状态来对图片进行浏览,还可以在图片框中以居中、满图片框和自动大小来进行浏览。如果想让它自动播放,可以进入幻灯片模式进行自动播放。这个软件还有一些对图片进行调整的小功能,方便用户使用,在亮度和对比度方面处理好了以后还可以对图片进行保存。3、 系统设计根据系统功能分析,经过模块化的分析得到如下图所示的系统功能模块结构图。主窗体对处理好的图片进行打印对处理好的图片进行保存 图片特效处理 图片播放效果 自动幻灯片播放 图片调整 打开文件夹添加输出模块处理模块导入模块上下、左右、两边

7、拉伸居中、拉伸和收缩黑白、反色、浮雕水平遮罩、垂直遮罩图片翻转图片雾化图片锐化和柔化图片扩展图片对比度调整图片亮度调整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;*.

8、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 + 宽度:

9、 + 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 ;/保存文件的路径及文件名 stri

10、ng 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, ImageForm

11、at.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.打印图片

12、 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.

13、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

14、 = 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.From

15、File(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 KiLight

16、en(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; in

17、t 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 sen

18、der, 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 | File

19、Type = 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; in

20、t Width = this.pictureBox1.Image.Width; Bitmap bitmap = new Bitmap(Width, Height); Bitmap MyBitmap = (Bitmap)this.pictureBox1.Image; Color pixel; for (int x = 1; x Width; x+) for (int y = 1; y Height; y+) int r, g, b; pixel = MyBitmap.GetPixel(x, y); r = 255 - pixel.R; g = 255 - pixel.G; b = 255 - p

21、ixel.B; bitmap.SetPixel(x, y, Color.FromArgb(r, g, b); this.pictureBox1.Image = bitmap; toolStripStatusLabel2.Text = 图片播放效果:反色效果; else toolStripStatusLabel2.Text = 请打开图片!; 5、 结束语通过这次的课程设计,我对程序的设计有了切身的体会,也让我对C2008编程语言这门课程有了一定的了解。而在这次的设计过程中,也让我了解到了我对这门课程掌握了多少,对程序的设计有了初步的认识,在设计的过程中让我让我感觉到了很多的知识点是还没有掌握的。我们应该能独立的去发现问题并解决问题,应用一切资源来帮助自己设计。需要在今后的学习过程中不断的加强对知识点的掌握,还要多看书,多多的上网查找资料。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1