求教:如何使picCol里面的图像照片不变形,谢谢!!!
我用下面的代码,在picCol显示一张完整的照片,但得到的照片图像有的看起来有点变形(高,宽的比列不对称),请教该如何修改,谢谢!!!
Private Sub Form_Load()
Me.Show
picCol.Left = 0
picCol.Top = 0
picCol.Height = Me.Height
picCol.Width = Me.Width
Picture1.ScaleMode = vbPixels
Picture1.AutoSize = True
Picture1.AutoRedraw = True
Picture1.Visible = False
Picture1.Top = 0
Picture1.Left = 0
Picture1.Picture = LoadPicture()
End Sub
Private Sub aa_Click()
On Error Resume Next
CD1.ShowOpen
If Err Then Err.Clear: Exit Sub
Dim w, h, wwidht, hheight, wwwidht, hhheight
Dim cs As Long
With Picture1
 .Picture = LoadPicture(CD1.FileName)
 w = picCol.ScaleWidth: h = picCol.ScaleHeight
 wwwidht = Picture1.ScaleWidth: hhheight = Picture1.ScaleHeight
 picCol.PaintPicture .Picture, 0, 0, w, h, 0, 0, .ScaleWidth, .ScaleHeight
End With
End Sub

解决方案 »

  1.   

    使用Image控件显示照片,并将它按比例缩放到一个尺寸内。
    Sub ShowPicture(PcitureName As String)
    Dim ZX As Single
    Dim ZY As Single
    With Image1
       .Stretch = False
       .Visible = False
       .Picture = LoadPicture(PictureName)
       ZX = .Width / 155     '假设目标宽度为155像素
       ZY = .Height / 165    '假设目标高度为165像素      
       If ZX > ZY Then
          ZY = ZX
       Else
          ZX = ZY
       End If
       .Stretch = True
       .Width = Int(.Width / ZX)
       .Height = Int(.Height / ZY)
       .Visible = Ture
    End With
    End Sub