关于VB放大缩小图片的问题

2025-01-05 21:27:17
推荐回答(4个)
回答1:

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, 文件名称

回答2:

如果放大后的图片比窗体小,可以采用下面代码居中:
Image1.Left = (Me.Width - Image1.Width) / 2
Image1.Top = (Me.Height - Image1.Height) / 2
如果放大后图片比窗体大,那么只能:
Image1.Left = 0
Image1.Top = 0

上面代码的前提是图片在窗体,而不是在容器。

回答3:

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

回答4:

图片宽度比窗体宽了肯定显示不完整

显示中央:image1.move (me.scalewidth-image1.width)\2,(me.scaleheight-image1.height)\2