Image1.Move 方法可以在移动的同时修改大小:
Image1.Move (Me.ScaleWidth - image1.Width) \ 2, (Me.ScaleHeight - image1.Height) \ 2,Image1.Width * 2,Image1.Height * 2
SavePicture 可以保存图片:
SavePicture Image1.Picture, 文件名称
可能保存的是原始大小的图片(记得不是很清楚了),如果那样你需要添加一个图片框pic1,用pic1.PaintPicture 复制图片到pic1(复制时可以指定大小)并保存pic1里面的图片:
SavePicture pic1.Picture, 文件名称
如果放大后的图片比窗体小,可以采用下面代码居中:
Image1.Left = (Me.Width - Image1.Width) / 2
Image1.Top = (Me.Height - Image1.Height) / 2
如果放大后图片比窗体大,那么只能:
Image1.Left = 0
Image1.Top = 0
上面代码的前提是图片在窗体,而不是在容器。
Private Sub Remove(ByVal nPre As Integer)
'定义过程放大或缩小后居中显示.传递负参数为缩小,正参数为放大
'放大缩小值为 百分比
With Image1
.Width = .Width + .Width * nPre / 100
.Height = .Height + .Height * nPre / 100
.Top = -.Height / 2
.Left = -.Width / 2
End With
End Sub
Private Sub Command1_Click()
Remove 10
End Sub
Private Sub Command2_Click()
Remove -10
End Sub
Private Sub Command3_Click()
'在保存里 我们得使用一个Picture 做为过渡来改重绘图片.据说API也可以,但我不知道
With Picture1
.AutoRedraw = True
.Width = Image1.Width
.Height = Image1.Height
.PaintPicture LoadPicture("D:\VB工程档案\Pic\DSC_0217副本.jpg"), 0, 0, Image1.Width - 100, Image1.Height - 300
End With
SavePicture Picture1.Image, "E:\1.bmp"
End Sub
Private Sub Form_Load()
Picture1.Visible = 0
Command1.Caption = "放大"
Command2.Caption = "缩小"
Command3.Caption = "保存"
End Sub
Private Sub Form_Resize()
'重绘坐标系
Me.Scale (-Me.Width / 2, -Me.Height / 2)-(Me.Width / 2, Me.Height / 2)
End Sub
图片宽度比窗体宽了肯定显示不完整
显示中央:image1.move (me.scalewidth-image1.width)\2,(me.scaleheight-image1.height)\2