简易图片浏览软件设计.doc_第1页
简易图片浏览软件设计.doc_第2页
简易图片浏览软件设计.doc_第3页
简易图片浏览软件设计.doc_第4页
简易图片浏览软件设计.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

简易图片浏览软件设计目 录内容1选题背景22方案论证23软件设计34程序代码55结果分析186总结19参考文献 201 选题背景基于Microsoft Visual Basic 6.0环境的图片浏览器。对Microsoft Visual Basic 6.0软件的进一步了解,运用所学知识解决实际问题。本课题解决的主要问题及技术要求有:1) 多个图片的添加与编号。2) 对已打开图片的文件名以及文件路径的记录并与原图片相对应。3) 已添加图片的单个选择查看。4) 实现图片的上一张,下一张切换。5) 可以自动播放已经添加的图片。6) 对大图片的适应窗口缩放。7) 图片的任意放大缩小,与放大或缩小以后的图片移动(可以通过鼠标拖动与点击按钮两种方式进行)。8) 可以将正在查看的图片在windows系统的画图板中打开编辑。9) 将选择的图片另存为。2 方案论证程序设计原理:1) 使用菜单栏、工具栏以及按钮操作程序。2) 使用commondialog控件来添加文件。3) 使用imagelist控件来对添加的图片标号,记录。4) 使用数组记录所添加图片的文件名、以及文件路径,并在状态栏显示。5) 使用picture控件和image控件来显示图片。6) 使用timer控件控件自动播放的时间。程序采用方案图片使用imagelist编号并加载。文件名与路径使用两个字符数组Names()与Lu()分别记录。3 软件设计流程界面设计功能设计程序编写运行调试控件对象属性列表表1 控件属性表默认名称NameCaptionEnableCommand1Command1上一个TrueCommand2Command2自动播放TrueCommand3Command3下一个TrueCommand4Command4适应窗口TrueCommand5Command5上移EnableCommand6Command6左移EnableCommand7Command7下移EnableCommand8Command8右移EnableCommand9Command9缩小EnableCommand10Command10放大EnableCombo1Combo1TrueTimer1Timer1EnableTimer2Timer2Enable菜单栏属性 图3-1 菜单栏“文件” 图3-2 菜单栏“编辑” 图3-3 菜单栏“设置” 图3-4 菜单栏“帮助” 图3-5 菜单栏属性工具栏属性图3-6 工具栏状态栏属性图3-7 状态栏程序运行截图图3-8 程序运行界面4 程序设计代码Public Time As Integer, a As IntegerDim Names(100) As String, Lu(100) As String 定义文件名和文件路径的数组Public x1 As Single, y1 As SinglePublic p As IntegerConst begin_drag = 1 开始拖动*Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) 图片缩小后拖动的重画Image1.Picture = SourceForm1.Image1.Picture = LoadPicture(StatusBar1.Panels(4) 拖动后重画picture中的图片Image1.Move (X - x1), (Y - y1) Label2.Caption = 图片当前位置 ( & Image1.Left & , & Image1.Top & )End Sub*Private Sub Image1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) 拖动x1 = X 确定重画的坐标y1 = YImage1.Drag begin_dragLabel2.Caption = 图片当前位置 ( & Image1.Left & , & Image1.Top & )End Sub*Private Sub Toolbar1_ButtonClick(ByVal Button As MSComCtlLib.Button) 工具栏 On Error Resume Next Select Case Button.Key Case 打开 Dim i As Integer a = Val(InputBox(请输入要打开的图片张数, 输入一个整数) If a = 0 Then GoTo Line1 未输入或点击取消 End If For i = 1 To a CD1.ShowOpen Lu(i) = CD1.FileName If CD1.FileName = Then GoTo Line1 如果点击取消后返回窗体 End If Names(i) = CD1.FileTitle Combo1.AddItem Lu(i) 将所选的图片加载到combo1 ImageList1.ListImages.Add , , LoadPicture(Lu(i) 将所选的图片加载到imagelist1 Next i Picture1.Picture = LoadPicture(Combo1.List(0)添加后默认显示第一张图片 StatusBar1.Panels(4) = Lu(1) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(1) 在状态栏显示文件名 OpenPicture.Enabled = False Save.Enabled = True Case 保存 CD1.ShowSave If ShowSave = vbOK Then 点击确认后保存文件 SavePicture Picture1, CD1.FileName End If Case 帮助 Shell c:windowssystem32notepad.exe + readme.txt 显示帮助文档 *.exe后要加空格 End SelectLine1:End Sub*Private Sub Form_Load()Timer1.Enabled = TrueTimer1.Interval = 1000CD1.Filter = 所有文件(*.jpg,*.bmp,*.jpeg)|*.jpg;*.bmp;*.jpeg|jpg格式|*.jpg|jpeg格式|*.jpeg|bmp格式|*.bmpImage1.Visible = FalseIf Picture1 = 0 Then 未加载图片保存按钮不可用 Save.Enabled = FalseEnd IfEnd Sub*Private Sub Combo1_Click()Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000If Image1.Visible = False Then Picture1.Picture = LoadPicture(Combo1.Text) 当前显示的图片 StatusBar1.Panels(4) = Lu(Val(Combo1.ListIndex) + 1) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(Val(Combo1.ListIndex) + 1)在状态栏显示文件名ElseIf Image1.Visible = True Then Image1.Picture = LoadPicture(Combo1.Text) StatusBar1.Panels(4) = Lu(Val(Combo1.ListIndex) + 1) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(Val(Combo1.ListIndex) + 1) 在状态栏显示文件名End IfEnd Sub*Private Sub Command1_Click()Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000Combo1.Text = 选择已添加的图片If p 0 Then p = p - 1 If Image1.Visible = False Then Picture1.Picture = ImageList1.ListImages(p + 1).Picture 切换上一张图片 StatusBar1.Panels(4) = Lu(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件名 Label1.Caption = 这是第: & p + 1 & 张 一共有: & ImageList1.ListImages.Count & 张图片 Else: Image1.Picture = ImageList1.ListImages(o + 1).Picture 切换上一张图片 StatusBar1.Panels(4) = Lu(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件名 Label1.Caption = 这是第: & p + 1 & 张 一共有: & ImageList1.ListImages.Count & 张图片 End IfEnd IfIf p = 0 Then 第一张图片切换上一张后跳转至最后一张图片p = ImageList1.ListImages.CountEnd IfEnd Sub*Private Sub Command2_Click() 自动播放按钮Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000If ImageList1.ListImages.Count = 0 Then 判断当图片大于一张时自动播放 MsgBox 还未添加图片, 64, 提示ElseIf ImageList1.ListImages.Count = 1 Then If Image1.Visible = False Then Picture1.Picture = ImageList1.ListImages(1).Picture Else: Image1.Picture = ImageList1.ListImages(1).Picture End If MsgBox 只有一张图片, 64, 提示ElseIf Command2.Caption = 自动播放 Then Timer2.Enabled = True Timer2.Interval = 3000 Command2.Caption = 停止播放ElseIf Command2.Caption = 停止播放 Then Timer2.Enabled = False Command2.Caption = 自动播放 Label1.Caption = 这是第: & p + 1 & 张 一共有: & ImageList1.ListImages.Count & 张图片End IfEnd Sub*Private Sub Command3_Click()Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000Combo1.Text = 选择已添加的图片If p ImageList1.ListImages.Count Then p = p + 1 If Image1.Visible = False Then Picture1.Picture = ImageList1.ListImages(p).Picture 切换下一张图片 StatusBar1.Panels(4) = Lu(ImageList1.ListImages(p).Index) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(ImageList1.ListImages(p).Index) 在状态栏显示文件名 Label1.Caption = 这是第: & p & 张 一共有: & ImageList1.ListImages.Count & 张图片 ElseIf Image1.Visible = True Then Image1.Picture = ImageList1.ListImages(p).Picture 切换下一张图片 StatusBar1.Panels(4) = Lu(ImageList1.ListImages(p).Index) 在状态栏显示文件路径 StatusBar1.Panels(2) = Names(ImageList1.ListImages(p).Index) 在状态栏显示文件名 Label1.Caption = 这是第: & p & 张 一共有: & ImageList1.ListImages.Count & 张图片 End If End IfIf p = ImageList1.ListImages.Count Then 最后一张跳转至第一张p = 0End IfEnd Sub*Private Sub Command4_Click() picturebox与image的切换来实现更多的功能Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000If Command4.Caption = 适应窗口 Then Command5.Enabled = True Command6.Enabled = True Command7.Enabled = True Command8.Enabled = True Command9.Enabled = True Command10.Enabled = True Image1.Visible = True Image1.Picture = Picture1.Picture Picture1.Picture = LoadPicture() Command4.Caption = 原图ElseIf Command4.Caption = 原图 Then Command5.Enabled = False Command6.Enabled = False Command7.Enabled = False Command8.Enabled = False Command9.Enabled = False Command10.Enabled = False Picture1.Picture = Image1.Picture Image1.Visible = False Command4.Caption = 适应窗口End IfEnd Sub*Private Sub Command5_Click() 上移Image1.Top = Image1.Top - 100End Sub*Private Sub Command6_Click() 左移Image1.Left = Image1.Left - 100End Sub*Private Sub Command7_Click() 下移Image1.Top = Image1.Top + 100End Sub*Private Sub Command8_Click() 右移Image1.Left = Image1.Left + 100End Sub*Private Sub Command9_Click() 缩小 Image1.Height = Image1.Height * 0.9 Image1.Width = Image1.Width * 0.9End Sub*Private Sub Command10_Click() 放大 Image1.Height = Image1.Height * 1.1 Image1.Width = Image1.Width * 1.1End Sub*Private Sub Clean_Click() 初始化Combo1.ClearLabel1.Caption = Image1.Picture = LoadPicture()Picture1.Picture = LoadPicture() 清空图片框内的内容ImageList1.ListImages.Clear 清空imagelist1里面的图片Combo1.Text = 选择已经添加的图片Save.Enabled = FalseOpenPicture.Enabled = TrueStatusBar1.Panels(4) = StatusBar1.Panels(2) = EndSub*Private Sub Save_Click() 图片的保存 CD1.ShowSaveIf ShowSave = vbOK Then 点确认后保存SavePicture Picture1, CD1.FileNameEnd IfEnd Sub*Private Sub EasyHelp_Click()MsgBox 简单的图片浏览器 + Chr(13) + 先添加图然后操作 + Chr(13) + 详情见帮助, 64, 软件介绍End Sub*Private Sub End_Click() 退出程序EndEnd Sub*Private Sub Help_Click() 打开帮助Shell c:windowssystem32notepad.exe + readme.txt *.exe后要加空格End Sub*Private Sub OpenPicture_Click() 图片组的打开Dim i As Integera = Val(InputBox(请输入要打开的图片张数, 输入一个整数)If a = 0 Then 不输入数据点确认,或点击取消后取消GoTo Line1End IfFor i = 1 To a 对添加的图片编号,并记录文件的名称,路径CD1.ShowOpenLu(i) = CD1.FileNameIf CD1.FileName = Then 如果点击取消添加后取消GoTo Line1 返回窗体End IfNames(i) = CD1.FileTitleCombo1.AddItem Lu(i) 将所选的图片加载到combo1ImageList1.ListImages.Add , , LoadPicture(Lu(i) 将所选的图片加载到imagelist1Next iPicture1.Picture = LoadPicture(Combo1.List(0) 添加后默认显示第一张图片StatusBar1.Panels(4) = Lu(1) 在状态栏显示文件路径StatusBar1.Panels(2) = Names(1) 在状态栏显示文件名OpenPicture.Enabled = FalseSave.Enabled = True 添加文件后保存按钮可用Line1:End Sub*Private Sub SetTime_Click() 设定自动播放时间间隔Line2: Z = InputBox(请输入你需要的自动播放时间间隔(大于1), 请输入一个正整数)Time = Val(Z) 获取自动播放间隔时间Timer2.Interval = Time * 1000If Time = 0 Then 点击取消后默认为4秒Time = 4End IfIf Time 2 ThenMsgBox 输入错误, 48, 提示GoTo Line2End IfEnd Sub*Private Sub Timer1_Timer()StatusBar1.Panels(5).Text = Now 在状态栏中显示现在时间End Sub*Private Sub Timer2_Timer() 图片的自动播放Image1.Top = 0: Image1.Left = 0: Image1.Height = 8000: Image1.Width = 10000If p ImageList1.ListImages.Count Then If Image1.Visible = False ThenPicture1.Picture = ImageList1.ListImages(p + 1).Picture 自动切换到下一张图片StatusBar1.Panels(4) = Lu(Val(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件路径StatusBar1.Panels(2) = Names(Val(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件名 ElseIf Image1.Visible = True ThenImage1.Picture = ImageList1.ListImages(p + 1).Picture 自动切换到下一张图片StatusBar1.Panels(4) = Lu(Val(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件路径StatusBar1.Panels(2) = Names(Val(ImageList1.ListImages(p + 1).Index) 在状态栏显示文件名 End If Label1.Caption = 正在自动播放.这是第: & p + 1 & 张 一共有: & ImageList1.ListImages.Count & 张图片 p = p + 1ElseIf p = ImageList1.ListImages.Count Then 播放完最后一张时,跳转至第一张继续播放 q = MsgBox(播放完毕 + Chr(13) + 是否返回第一张继续播放?, 65, 提示) If q = vbOK Then p = 0 播放完最后一张时,跳转至第一张继续播放 Else: Call Command2_Click 播放结束 End IfEnd IfEnd

温馨提示

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

评论

0/150

提交评论