实验一制作图片浏览器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一制作图片浏览器
一实验目的:
学习并掌握Visual Basic基本控件的使用,学习并掌握Visual Basic6.0的基本语法规则,理解并掌握容器的概念,掌握面向对象编程的基本原理与方法。
二实验内容:
利用PicturBoxe、Image控件结合文件系统空间制作支持多种静态图片文件格式的浏览器。
三实验原理:
Visual Basic6.0支持几乎全部的图片格式,包括BMP,JPG GIF ,CUR,ICO等格式,通过文件系统控件可以访问到全部本地磁盘、软盘、光盘、移动存储设备以及局域网内用油访问权限的逻辑磁盘上的文件,通过利用FileListBox 控件的文件过滤功能,将可显示的图片罗列出来后在Image控件中进行显示。
PictureBox控件是一款用来加载和处理图片的控件,它不仅仅可以用来显示图片,而且可以加载上面的图片进行更高级的编辑,如按位操作、像素级图像处理等,PictureBox拥有独立的坐标系统,可作为容器来加载其他控件。
Image控件是一款专门用来显示图片的控件,它可以显示全部图像格式,同时由于具备Stretch属性,可以使图像按照Image控件的二维视图区域进行显示,又由于该控件占用的内存空间比PictureBox控件小得多,因此在不对图像进行处理的场合下应优先选择。
加载图像使用VB自带的LoadPicture函数,它的引用方法为:Picture1.picture=LoadPicture (Pathname)
Image1.picture= LoadPicture (Pathname)
其中Picture1为图片框控件PictureBox的对象引用名称,Image1为图像框控件Image的对象引用名称。 Pathname为图片文件的路径。
由于本实验仅仅涉及图片的浏览,因此建议使用Image控件。同时,显示过程中为了保证图像显示的完整性,应该使Image控件的大小符合图片自身的大小,在支持缩放时,图片的高和宽两项参数应该按比例同时发生变化。
在显示图片时,首先应该将Image控件的Visible属性设置为False,Stretch属性设置为False,此时,Image控件不可见,同时,加载图片后,Image控件的大小与图片的原始大小相同。为了适应显示窗口,需要选择具有独立坐标系统的PictureBox控件作为显示区,并要求
Image控件在PictureBox的限定范围内显示全部的图像信息。
由于图片的自身大小各异,高宽比(Height/Width)未知,因此,为了在限定显示区内显示全部图片信息,应该考虑图像自身高宽比与显示区高宽比的关系,它们的比例关系有如下两种情况,见下图:
显示区显示区
图1 图2
在图1中,图片的高宽比小于显示区的高宽比,此时,为了显示全部图像信息,应将图片的高度等同于显示区的高度,而宽度则按比例做适应性调整。
在图2中,图片的高宽比大于显示区的高宽比,此时,为了显示全部图像信息,应将图片的宽度等同于显示区的宽度,而高度则按比例做适应性调整。
当然,若图片与显示区高宽比相同,则按上述两种情况之一执行即可。当图片的大小小于显示区,可直接进行显示不必进行调整。
另外,在对图片进行浏览、缩放时需要对图片进行居中调整,可使显示效果更加美观。
图片的TOP属性=(显示区域高度-图片高度)/2
图片Left属性=(显示区域宽度-图片宽度)/2
具体示例代码如下:
Dim WHP As Single ‘定义图片框控件高宽比的变量
Dim WHF As Single ‘定义图像框控件(显示区域)高宽比的变量
Image1.Visible = False ‘设置图片框不可见,避免显示抖动
Image1.Stretch = False ‘设置图片框大小等同于随图片大小
Image1.Picture = LoadPicture(Pathname) ‘加载图片到图片框
WHP = Image1.Width / Image1.Height ‘取得图片框即原始图像的高宽比
WHF = Picture1.Width / Picture1.Height ‘取得图像框即显示区域的高宽比
If WHP >= WHF Then 判断,若图片框高宽比大于或等于图像框高宽比
Image1.Width = Picture1.Width
Image1.Height = Image1.Width / WHP ‘调整图片框宽度和高度参数
Else ‘否则,若图片框高宽比小于图像框高宽比
Image1.Height = Picture1.Height
Image1.Width = Image1.Height * WHP ‘调整图片框宽度和高度参数
End If
Image1.Top = (Picture1.Height - Image1.Height) / 2
Image1.Left = (Picture1.Width - Image1.Width) / 2 ‘居中调整图片框
Image1.Stretch = True ‘拉伸图片到合适大小
Image1.Visible = True ‘显示图片
四、实验步骤
1 新建工程,名称自拟。
2 添加一个窗体,名称自拟。
3 添加六个Command控件,名称自拟。添加一个Timer控件,设置它的Interval属性为1000。
4 添加一个PictureBox控件,然后再将一个Image控件添加到PictureBox控件上。
5 添加一个DriveListBox控件,一个DirListBox控件,一个FileListBox控件。
6 在DriveListBox控件、DirListBox控件的Change事件中填写代码使三个文件系统控件实现连接互动。在FileListBox控件的Click事件中填写加载图片文件以及位置调整的代码。
7 将六个Command控件的Caption属性分别设置为:“上一个”、“下一