多媒体软件设计技术.docx
- 文档编号:6143741
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:20
- 大小:1.20MB
多媒体软件设计技术.docx
《多媒体软件设计技术.docx》由会员分享,可在线阅读,更多相关《多媒体软件设计技术.docx(20页珍藏版)》请在冰点文库上搜索。
多媒体软件设计技术
《多媒体软件设计技术》
课程设计报告
课程名称:
多媒体软件设计技术
班级:
学号:
姓名:
指导教师:
一、设计说明
该电子相册的设计依据常用图片浏览器的模板,利用visualbasic的强大编程功能和可视化效果,具有常用图片浏览器的各种功能:
1)打开图片
本工程有两个窗体,一个主窗体显示图片和常用命令按钮,副窗体在点击“打开文件”按钮时弹出,显示驱动器名和文件夹名,从中找到需要打开的文件,点击“确认”或“取消”后隐藏副窗体,在主窗体左的列表框中显示所有文件名,双击任意一个即可打开图片。
并在图片上方的label框中显示总图片数当前图片的张数及文件的位置。
2)跳至第一张
点击后跳到第一张图片
3)浏览上一张
单击该按钮实现打开文件夹内的上一张图片。
4)浏览下一张
单击该按钮实现打开文件夹内的下一张图片。
5)图片放大
对当前图片应用放大功能,以每次1.2倍的速度变大图片,并实现左右对齐的功能。
6)图片缩小
对当前片图片应用缩小功能,以每次1.2倍的速度缩小图片,并实现左右对齐的功能。
7)跳至最后一张
点击后跳到最后一张图片。
8)自动浏览
一次点击后开始自动浏览图片,再次点击后停止。
9)退出
点击该按钮后,退出程序。
此外,在每个控制按钮的图标下都有对应的文字说明,便于读者看懂和操作。
为了让界面看起来更和谐,故把所有控件和框体的appearance属性都该为0-flat,backcolor改为和背景图片同色。
在代码方面,使用的语句都较为简洁,便于实现和读者理解,体现了vb的通用性和易懂性。
在窗显示设计方面,用了两个窗体,当完成文件选择后会随着命令隐藏起来,使得整个浏览器更加具有面向对象的特点。
二、详细设计
1.程序设计界面
1)frmMain
2)frmOpen
2.程序运行界面
1)打开程序
2)选择文件
3)打开第一张图
4)放大效果
5)缩小效果
3.属性值设置
1)主窗体
控件名称
属性名称
属性值
窗体
(主窗体)
Caption
电子相册
startupPostion
2-屏幕中心
Picture
(bitmap)指定图片
名称
frmMain
文件列表框
FileListBox
名称
lstPicName
BackColor
&H00FFFFFF&(浅灰色)
图像框
Image
名称
Image1
Stretch
True(自动调整大小)
命令按钮
CommandButton
(共同的)
Appearance
0-flat
BackColor
&H00FFFFFF&(浅灰)
Style
1-Graphic
Pictrue
(bitmap)制定图片
CommandButton1
Caption
打开文件
名称
cmdOpen
CommandButton2
Caption
跳至第一幅
名称
cmdNavi
CommandButton3
Caption
上一幅图片
名称
cmdNavi
CommandButton4
Caption
下一幅图片
名称
cmdNavi
CommandButton5
Caption
跳至最后一幅
名称
cmdNavi
CommandButton6
Caption
自动浏览/停止
名称
cmdSlide
CommandButton7
Caption
放大
名称
cmdbup
CommandButton8
Caption
缩小
名称
Cmdrdu
CommandButton9
Caption
退出
名称
cmdExit
标签框lable1
名称
lblStatus1
Appearance
0-flat
标签框lable1
名称
lblStatus2
Appearance
0-flat
2)副窗体
控件名称
属性名称
属性值
窗体
(副窗体)
Caption
指定文件夹
BorderStyle(边框)
2-sizeable(可变)
名称
frmOpen
驱动器列表框
DriveListBox
名称
Drive1
BackColor
&H00FFC0C0&(淡灰色色)
Visible
True(后面会变化)
目录列表框
DirListBox
名称
Dir1
BackColor
&H00FFC0C0&(淡灰色色)
标签框lable1
Caption
驱动器
名称
Label1
标签框lable1
Caption
文件夹
名称
Label2
CommandButton
Caption
确定
名称
cmdOK
CommandButton
Caption
取消
名称
cmdCancel
4.代码
1)窗体加载
PrivateSubForm_Load()'窗体加载
strFileType
(1)="BMP"
strFileType
(2)="JPG"'可选择的文件格式
strFileType(3)="GIF"
strFileType(4)="WMF"
strFileType(5)="CUR"
strFileType(6)="ICO"
EndSub
2)打开文件
PrivateSubcmdOpen_Click()'打开文件夹
DimstrFileNameAsString
DimiAsInteger,jAsInteger‘定义变量
frmOpen.Show1
IfPath=""ThenExitSub‘若点击空格键,则结束
lblStatus2.Caption="当前文件夹:
"&Path
Path=Path&"\"
lstPicName.Clear'清空列表框
Fori=1ToFileType
intFileTypeNum(i)=0
strFileName=Dir(Path&"*."&strFileType(i))‘打开图片
DoWhileNotstrFileName=""
intFileTypeNum(i)=intFileTypeNum(i)+1
lstPicName.AddItemstrFileName'向列表框中添加文件名
strFileName=Dir()
Loop
Next
IflstPicName.ListCount>0Then
lstPicName.ListIndex=0
Image1.Picture=LoadPicture(Path&lstPicName.Text)
opened=True
Else
Image1.Picture=LoadPicture
opened=False
EndIf
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2
Image1.Top=(frmMain.Height+500-Image1.Height)/2
lblStatus1.Caption="共"&lstPicName.ListCount&"张,第"&lstPicName.ListIndex+1&"张"
'在框中显示总图片数和当前图的张数
IflstPicName.ListCount<>0Then
cmdNavi
(2).Enabled=True
cmdNavi(3).Enabled=True
cmdSlide.Enabled=True
EndIf
EndSub
3)图片放大
PrivateSubcmdbup_Click()'图片放大
Image1.Stretch=True'使image框的大小与图片自适应
Image1.Width=Image1.Width*1.2
Image1.Height=Image1.Height*1.2'每次放大1.2倍
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2
Image1.Top=(frmMain.Height+500-Image1.Height)/2
EndSub
4)图片缩小
PrivateSubCmdrdu_Click()'图片缩小
Image1.Stretch=True'使image框的大小与图片自适应
Image1.Width=Image1.Width/1.2'每次缩小1.2倍
Image1.Height=Image1.Height/1.2
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2'保持图像居中
Image1.Top=(frmMain.Height+500-Image1.Height)/2
5)自动浏览
PrivateSubcmdSlide_Click()'自动浏览获取图片
IfTimer1.EnabledThen
cmdSlide.Picture=LoadPicture(App.Path&"\play.ico")
Else
cmdSlide.Picture=LoadPicture(App.Path&"\pause.ico")
EndIf
Timer1.Enabled=NotTimer1.Enabled
EndSub
PrivateSubTimer1_Timer()'自动浏览控制
IfNotopenedThenExitSub‘如果未点击结束,则继续
IflstPicName.ListIndex=lstPicName.ListCount-1Then
lstPicName.ListIndex=0'当浏览至最后一张时,跳回第一张
Else
lstPicName.ListIndex=lstPicName.ListIndex+1'下一张
EndIf
Image1.Picture=LoadPicture(Path&lstPicName.Text)
lblStatus1.Caption="共"&lstPicName.ListCount&"张,第"&lstPicName.ListIndex+1&"张"
CallChange_Enabled'调用函数,改变命令按钮的’enabled‘属性
EndSub
6)实现图片上一张下一张的翻动
PrivateSubcmdNavi_Click(IndexAsInteger)
IfNotopenedThenExitSub
SelectCaseIndex
Case0'若index为0,则listindex值变为0
lstPicName.ListIndex=0'无图片
Case1
IflstPicName.ListIndex=0ThenExitSub
lstPicName.ListIndex=lstPicName.ListIndex-1
Case2'若index为2,则listindex值加1,到下一张图片
IflstPicName.ListIndex=lstPicName.ListCount-1ThenExitSub
lstPicName.ListIndex=lstPicName.ListIndex+1
Case3'若index为3,则listindex值减1,到上一张图片
lstPicName.ListIndex=lstPicName.ListCount-1
EndSelect
Image1.Picture=LoadPicture(Path&lstPicName.Text)
lblStatus1.Caption="共"&lstPicName.ListCount&"张,第"&lstPicName.ListIndex+1&"张"'显示图片的总张数和当前张数
CallChange_Enabled'调用函数
PrivateSubChange_Enabled()'调节命令按钮的可操作性
IflstPicName.ListIndex=0Then'当图片数为0时,
cmdNavi(0).Enabled=False'“跳至第一张”不响应
cmdNavi
(1).Enabled=False'“上一张”不响应
cmdNavi
(2).Enabled=True'“下一张”响应
cmdNavi(3).Enabled=True'“跳最后一张”响应
ElseIflstPicName.ListIndex=lstPicName.ListCount-1Then
cmdNavi(0).Enabled=True‘
cmdNavi
(1).Enabled=True
cmdNavi
(2).Enabled=False
cmdNavi(3).Enabled=False
Else
cmdNavi(0).Enabled=True
cmdNavi
(1).Enabled=True
cmdNavi
(2).Enabled=True
cmdNavi(3).Enabled=True
EndIf
EndSub
7)退出程序
PrivateSubcmdExit_Click()'退出程序
UnloadMe
EndSub
三.考试小节
本次试验总的来说是充满坎坷的,在试验之前觉得vb很简单,就没有太在意,觉得电子相册比较实用也比较有趣就选了,等到开始做时才感到所学之不足,首先就不知道如何打开文件,考虑了用DriveListBox、DirListBox、FileListBox控件和CommonDialog控件来完成,但编了好几次都是出现了一些问题,而不能达到预期的效果,接着就是在图片放大缩小方面,由于开始用的是picturebox控件,总是不能实现,然后又想增加一个自动浏览的功能,但在实现的时候,又遇到了问题,才发现vb并非想象的那样简单,就去参考了很多vb方面的书,系统的学习了一下vb编程的方法和各种控件的详细使用方法,后来又在王栋老师主编的《VisualBasic程序开发实例教程》一书中得到启发,经过多次修改后,终于完成这个电子相册的设计。
经过一周的努力,虽然有所小成,但却让我真正领略到了这一高级语言的博大精深,我以后要学习的还很多,正所谓“路漫漫其修远兮,吾将上下而求索!
”
附:
程序全部代码
主窗体
OptionExplicit'变量定义
OptionBase1
PublicPathAsString
PrivateSlideShowAsBoolean
PrivateopenedAsBoolean
PrivateConstFileTypeAsInteger=6'文件类型数目
PrivatestrFileType(FileType)AsString'文件类型的扩展名
PrivateintFileTypeNum(FileType)AsString'各种类型的文件个数
PrivateSubcmdbup_Click()'图片放大
Image1.Stretch=True'使image框的大小与图片自适应
Image1.Width=Image1.Width*1.2
Image1.Height=Image1.Height*1.2'每次放大1.2倍
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2
Image1.Top=(frmMain.Height+500-Image1.Height)/2
EndSub
PrivateSubcmdExit_Click()'退出程序
UnloadMe
EndSub
PrivateSubcmdNavi_Click(IndexAsInteger)
IfNotopenedThenExitSub
SelectCaseIndex
Case0'若index为0,则listindex值变为0
lstPicName.ListIndex=0'无图片
Case1
IflstPicName.ListIndex=0ThenExitSub
lstPicName.ListIndex=lstPicName.ListIndex-1
Case2'若index为2,则listindex值加1,到下一张图片
IflstPicName.ListIndex=lstPicName.ListCount-1ThenExitSub
lstPicName.ListIndex=lstPicName.ListIndex+1
Case3'若index为3,则listindex值减1,到上一张图片
lstPicName.ListIndex=lstPicName.ListCount-1
EndSelect
Image1.Picture=LoadPicture(Path&lstPicName.Text)
lblStatus1.Caption="共"&lstPicName.ListCount&"张,第"&lstPicName.ListIndex+1&"张"
'显示图片的总张数和当前张数
CallChange_Enabled'调用函数
EndSub
PrivateSubcmdOpen_Click()'打开文件夹
DimstrFileNameAsString
DimiAsInteger,jAsInteger
frmOpen.Show1
IfPath=""ThenExitSub
lblStatus2.Caption="当前文件夹:
"&Path
Path=Path&"\"
lstPicName.Clear'清空列表框
Fori=1ToFileType
intFileTypeNum(i)=0
strFileName=Dir(Path&"*."&strFileType(i))
DoWhileNotstrFileName=""
intFileTypeNum(i)=intFileTypeNum(i)+1
lstPicName.AddItemstrFileName'向列表框中添加文件名
strFileName=Dir()
Loop
Next
IflstPicName.ListCount>0Then
lstPicName.ListIndex=0
Image1.Picture=LoadPicture(Path&lstPicName.Text)
opened=True
Else
Image1.Picture=LoadPicture
opened=False
EndIf
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2
Image1.Top=(frmMain.Height+500-Image1.Height)/2
lblStatus1.Caption="共"&lstPicName.ListCount&"张,第"&lstPicName.ListIndex+1&"张"
'在框中显示总图片数和当前图的张数
IflstPicName.ListCount<>0Then
cmdNavi
(2).Enabled=True
cmdNavi(3).Enabled=True
cmdSlide.Enabled=True
EndIf
EndSub
PrivateSubCmdrdu_Click()'图片缩小
Image1.Stretch=True'使image框的大小与图片自适应
Image1.Width=Image1.Width/1.2'每次缩小1.2倍
Image1.Height=Image1.Height/1.2
Image1.Left=(frmMain.ScaleWidth-Image1.Width)/2'保持图像居中
Image1.Top=(frmMain.Height+500-Image1.Height)/2
EndSub
PrivateSubcmdSlide_Click()'自动浏览获取图片
IfTimer1.EnabledThen
cmdSlide.Picture=LoadPicture(App.Path&"\play.ico")
Else
cmdSlide.Picture=LoadPicture(App.Path&"\pause.ico")
EndIf
Timer1.Enabled=NotTimer1.Enabled
EndSub
PrivateSubForm_Load()'窗体加载
strFileType
(1)="BMP"
strFileType
(2)="JPG"'可选择的文件格式
strFileType(3)="GIF"
strFileType(4)="WMF"
strFileType(5)="CUR"
strFileType(6)="ICO"
EndSub
PrivateSubLabel1_Click()'统计并显示总图片数和当前图的张数
IflstPicName.ListIndex=lstPicName.ListCount-1Then
lstPicName.ListIndex=0
Else
lstPicName.ListIndex=lstPicName.ListIndex+1
EndIf
Image1.Picture=LoadPicture(Path&lstPicName.Text)
lblStatus1.Caption="共"&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 多媒体 软件设计 技术