C#课程设计缩略图生成器软件.docx
- 文档编号:4439182
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:23
- 大小:180.74KB
C#课程设计缩略图生成器软件.docx
《C#课程设计缩略图生成器软件.docx》由会员分享,可在线阅读,更多相关《C#课程设计缩略图生成器软件.docx(23页珍藏版)》请在冰豆网上搜索。
C#课程设计缩略图生成器软件
**学院
课程设计说明书
(2012/2013学年第一学期)
课程名称:
软件程序设计
题目:
缩略图生成器
专业班级:
学生姓名:
放羊娃
学号:
指导教师:
设计周数:
2周
设计成绩:
2013年1月18日
目录
1、课程设计目的1
2、软件的分析与设计1
2.1软件分析2
2.1.1课程设计的任务3
2.1.2课程设计的要求4
2.2软件设计5
2.2.1逻辑层次的设计6
2.2.2主界面的设计7
2.3程序设计8
2.3.1程序流程图9
2.3.2软件运行过程10
2.3.3实现结果11
3、课程设计总结19
4、参考文献20
1、课程设计目的
(1)通过本次设计掌握VisualStudio中Windows窗体的建立及窗体中各个控件的使用,以及界面的设计
(2)进一步熟悉了所学的C#语言的编程,对编程有了进一步巩固,并提高分析和解决实际问题的能力
(3)初步掌握使用VisualStudio建立软件的这一功能。
熟悉了软件的设计,调试的全过程
2、系统分析与设计
缩略图生成器是一款可以对图像进行处理的软件,用户可以根据自己的需求使用该软件对图像进行处理,比如由于图片过大而无法上传,或者是需要实现批量缩放等,实现这些功能,在一定程度上给需求者带来了极大的方便。
本课程设计实现了一个具有这些功能的缩略图生成器,用户可以使用该软件实习自己所需的一些功能。
但本软件也有一些不足之处,就是没有实现等比例不失真生成缩略图。
2.1系统分析
2.1.1课程设计的任务
(1)根据技术要求和现有开发环境,分析题目
(2)软件设计方案。
包括:
软件功能结构、各功能模块的详细描述、关键程序流程图等。
(3)使用C#语言,实现软件;
(4)调试、修改并完善程序;
(5)生成安装程序,编写软件使用说明书(图文结合进行描述);
(6)撰写课程设计报告。
2.1.2课程设计的要求
(1)单张图片生成缩略图和批量图片生成缩略图;
(2)自定义缩略图的宽和高,等比例不失真的生成缩略图;
(3)生成缩略图文件命名规则定制;
(4)生成文件存放路径的自定义。
2.2系统的设计
本软件是一款基于VisualStudio系统的软件,简单易操作。
只有VisualStudio2005及更高的版本下才能使用,本软件实现了以下功能:
(1)单张图片生成缩略图和批量图片生成缩略图;
(2)自定义图片的高和宽;
(3)生成缩略图文件命名规则的定制;
(4)生成文件存放路径的自定义。
2.2.1逻辑层次的设计
本次设计的软件可以实现单张和多张图片的缩略,自定义图片的高和宽,自定义保存路径和自定义图片命名规则。
缩略图生成器的基本结构框图如图1所示
图1缩略图生成器基本结果框架
2.3程序设计
用户打开该软件进入到该软件的界面后,点击菜单栏上单张缩略、多张缩略、关于明和退出按钮,就可以根据自己的需要,对图片进行相关的设定,达到自己所需的效果。
2.3.1程序流程图
单张生成缩略图程序流程图如图2所示:
图2
多张生成缩略图程序流程图如图3所示:
图3
2.3.2软件运行过程
本软件主要通过运用C#的Windows窗体的设计进行开发和实施,在VisualStudio2005及更高的版本下才能运行。
主要通过如下几个功能模块来完成软件的具体的运行过程:
(1)主界面窗体:
主界面如图4所示:
图4
具体实现的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
namespaceWindowsApplication2
{
publicpartialclass主界面:
Form
{
public主界面()
{
InitializeComponent();
}
privatevoid关于ToolStripMenuItem_Click(objectsender,EventArgse)
{
版本信息frm=new版本信息();
frm.Show();
}
privatevoidbutton1_Click_1(objectsender,EventArgse)
{
单张生成frm=new单张生成();
frm.Show();
}
privatevoidbutton2_Click_1(objectsender,EventArgse)
{
多张生成frm=new多张生成();
frm.Show();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(MessageBox.Show("退出系统?
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK)
{
Application.Exit();
}
}
}
}
(2)单张生成缩略图窗体:
界面如图5所示:
图5
具体实现的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Drawing.Imaging;
namespaceWindowsApplication2
{
publicpartialclass单张生成:
Form
{
BitmapMyBitmap;
privateintwidth;
privateintheight;
stringfilename=string.Empty;
control_imgc=newcontrol_img();
public单张生成()
{
InitializeComponent();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(MessageBox.Show("退出系统?
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK)
{
Application.Exit();
}
}
privatevoid版本信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
版本信息frm=new版本信息();
frm.Show();
}
privateboolsetConfig()
{
if(this.checkBox4.Checked)
{
if(this.textBox4.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox4.Text.Trim());
}
else
{
MessageBox.Show("请填写高度!
");
this.textBox4.Focus();
returnfalse;
}
if(this.textBox5.Text.Trim().Length>0)
{
this.height=Convert.ToInt32(this.textBox5.Text.Trim());
}
else
{
MessageBox.Show("请填写宽度!
");
this.textBox5.Focus();
returnfalse;
}
}
elseif(this.checkBox3.Checked)
{
if(this.textBox3.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox3.Text.Trim());
this.height=width;
}
else
{
MessageBox.Show("请填写缩放比例!
");
this.textBox3.Focus();
returnfalse;
}
}
elseif(this.checkBox1.Checked)
{
if(this.textBox1.Text.Trim().Length>0)
{
this.height=Convert.ToInt32(this.textBox1.Text.Trim());
this.width=0;
}
else
{
MessageBox.Show("请填写高度缩放比例!
");
this.textBox1.Focus();
returnfalse;
}
}
elseif(this.checkBox2.Checked)
{
if(this.textBox2.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox2.Text.Trim());
this.height=0;
}
else
{
MessageBox.Show("请填写宽度缩放比例!
");
this.textBox2.Focus();
returnfalse;
}
}
returntrue;
}
privatevoidgo()
{
try
{
//判断文件是否存在
if(this.openFileDialog2.FileName.Trim().Length<=0)
{
MessageBox.Show("请先选择一个文件");
return;
}
if(!
setConfig()||!
setSave())
{
return;
}
stringoriPath=this.openFileDialog2.FileName;
this.openFileDialog2.Dispose();//该行可以不注释,为避免发生资源占用不能替换源文件所以还是注释。
this.pictureBox1.Image.Dispose();//在处理之前必须断开pic对image的引用否则无法替换源文件
this.pictureBox1.Image=null;//断开引用后需要赋值为null,否则形同虚设。
if(this.checkBox4.Checked)
{
c.Make_Thumbnail2(oriPath,filename,width,height,"hws");
}
if(this.checkBox3.Checked)
{
c.Make_Thumbnail2(oriPath,filename,width,height,"scale");
}
if(this.checkBox1.Checked)
{
c.Make_Thumbnail2(oriPath,filename,width,height,"hscale");
}
if(this.checkBox2.Checked)
{
c.Make_Thumbnail2(oriPath,filename,width,height,"wscale");
}
this.pictureBox1.Image=Image.FromFile(oriPath);
MessageBox.Show("执行成功!
请检查相应的文件");
}
catch(Exceptiones)
{
MessageBox.Show("有异常!
"+es.Message);
}
}
privateboolsetSave()
{
if(this.checkBox5.Checked)
{
if(this.textBox6.Text.Trim().Length>0)
{
stringtemp=this.openFileDialog2.FileName;
stringext_temp=System.IO.Path.GetExtension(temp).ToLower();
intindexof=temp.LastIndexOf('\\')+1;
this.filename=temp.Substring(0,indexof);
this.filename=filename+this.textBox6.Text.Trim()+ext_temp;
}
else
{
MessageBox.Show("请填写文件名!
");
this.textBox6.Focus();
returnfalse;
}
}
elseif(this.checkBox6.Checked)
{
if(this.textBox7.Text.Trim().Length>0)
{
this.filename=this.textBox7.Text.Trim();
}
else
{
MessageBox.Show("请填写完整路径!
");
this.textBox7.Focus();
returnfalse;
}
}
returntrue;
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
go();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
FolderBrowserDialogopenfolder=newFolderBrowserDialog();
openfolder.ShowDialog();
path=openfolder.SelectedPath;
textBox7.Text=path+@"\";
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
openFileDialog2.Filter="*.jpg,*.jpeg,*.bmp,*.gif,*.ico,*.png,*.tif,*.wmf|*.jpg;*.jpeg;*.bmp;*.gif;*.ico;*.png;*.tif;*.wmf";//设置打开图像的类型
openFileDialog2.ShowDialog();//打开对话框
if(this.openFileDialog2.FileName.Trim()=="")
return;
try
{
//把打开的图像赋给Bitmap变量
BitmapSrcBitmap=newBitmap(this.openFileDialog2.FileName);
MyBitmap=newBitmap(SrcBitmap,this.pictureBox1.Width,this.pictureBox1.Height);
this.pictureBox1.Image=MyBitmap;//在控件上显示图像
}
catch
{
//提示对话框
MessageBox.Show(this,"打开图像文件错误!
","信息提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
}
}
}
(3)多张生成缩略图窗体:
界面如图6所示:
图6
具体实现的代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.IO;
usingSystem.Drawing.Imaging;
usingSystem.Collections;
namespaceWindowsApplication2
{
publicpartialclass多张生成:
Form
{
privateintwidth;
privateintheight;
stringfilename=string.Empty;
control_imgc=newcontrol_img();
stringpath=string.Empty;//路径
public多张生成()
{
InitializeComponent();
}
privatevoid版本信息ToolStripMenuItem_Click(objectsender,EventArgse)
{
版本信息frm=new版本信息();
frm.Show();
}
privatevoid退出ToolStripMenuItem_Click(objectsender,EventArgse)
{
if(MessageBox.Show("退出系统?
","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information)==DialogResult.OK)
{
Application.Exit();
}
}
privateboolsetConfig()
{
if(this.checkBox4.Checked)
{
if(this.textBox4.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox4.Text.Trim());
}
else
{
MessageBox.Show("请填写高度!
");
this.textBox4.Focus();
returnfalse;
}
if(this.textBox5.Text.Trim().Length>0)
{
this.height=Convert.ToInt32(this.textBox5.Text.Trim());
}
else
{
MessageBox.Show("请填写宽度!
");
this.textBox5.Focus();
returnfalse;
}
}
elseif(this.checkBox3.Checked)
{
if(this.textBox3.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox3.Text.Trim());
this.height=width;
}
else
{
MessageBox.Show("请填写缩放比例!
");
this.textBox3.Focus();
returnfalse;
}
}
elseif(this.checkBox1.Checked)
{
if(this.textBox1.Text.Trim().Length>0)
{
this.height=Convert.ToInt32(this.textBox1.Text.Trim());
this.width=0;
}
else
{
MessageBox.Show("请填写高度度缩放比例!
");
this.textBox1.Focus();
returnfalse;
}
}
elseif(this.checkBox2.Checked)
{
if(this.textBox2.Text.Trim().Length>0)
{
this.width=Convert.ToInt32(this.textBox2.Text.Trim());
this.height=0;
}
else
{
MessageBox.Show("请填写宽度缩放比例!
");
this.textBox2.Focus();
returnfalse;
}
}
returntrue;
}
privatevoidall(stringfile_path,stringresult_path)
{
try
{
if(!
setConfig())
{
return;
}
stringtemp_path="";
stringtype="hws";
string[]filenames=Directory.GetFiles(file_path,"*.jpg",SearchOption.AllDirectories);
if(this.checkBox4.Checked)
{
type="hws";
}
if(this.checkBox3.Checked)
{
type="scale";
}
if(this.checkBox1.Checked)
{
type="hscale";
}
if(this.checkBox2.Checked)
{
type="wscale";
}
System.Diagnostics.Process.Start("explorer.exe",file_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 课程设计 缩略图 生成器 软件
![提示](https://static.bdocx.com/images/bang_tan.gif)