在VB中如何对BMP文件按一定比例进行缩小与放大显示与输出
编号:QA000097
建立日期: 1998年11月13日 最后修改日期:2003年11月30日
所属类别:
Q
章文晋:
在VB中如何对BMP文件按一定比例进行缩小与放大显示与输出?
A回答:
在VB中Form、PictureBox和Printer都有PaintPicture方法,它就可以满足你的要求。这个方法功能是复制图像,其基本语法如下:
object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode
这里的picture来自Form等的Picture属性,而x1、y1是目标区域的左上角坐标,而x2、y2是源区域的左上角坐标,width1和height1是目标区域的宽度和高度,而width2和height2是源区域的宽度和高度,如果width1=width2且height1=height2,那么就是等比例复制,你只需要选择适当的参数就可以实现缩小与放大。参数opcode是操作码,其含义可以参考Windows API中关于BitBlt和StretchBlt函数的介绍。下面是一个简单的例子:
Private Sub Form_Click()
Me.PaintPicture Picture1.Picture, 0, 0, 3500, 2000
End Sub
这个方法有一个非常好的特性:作为源对象的PictureBox可以是不可见的(Visible属性为False),这在实际中非常方便。
威威的意见:
在窗体上放上一个PictureBox和一个ImageBox(两个PictureBox也可),先将图片读入PictureBox,取得其长宽数,再按长宽比设置ImageBox的Height和Width即可。
Picture1.Picture = LoadPicture(图片文件名)
w = Picture1.Picture.Width '图片原宽
h = Picture1.Picture.Height '图片原高
If h > w Or h = w Then '如果图是高大于宽的
Image1.Height = 4740 '4740是要缩小或放大到的尺寸,可自行设定
Image1.Width = 4740 * w / h
Image1.Picture = Picture1.Picture
Else '如果宽大于高
Image1.Width = 4740
Image1.Height = 4740 * h / w
Image1.Picture = Picture1.Picture
End If
这样既可缩放,又不会变形。
此问题由李海回答。
附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, 图形、图象, picture, graph, image, draw。
| |
|
|
| |
|
|