请问VB内使用Image或者Picture,打开窗体时图片按本身比例缩放,如下

2025-01-05 01:44:44
推荐回答(1个)
回答1:

如果用Image控件,需要改变Image控件的位置和大小。

以下是用Picture1缩放图片的代码:

Set sp = LoadPicture("E:\a.jpg") '加载图片
w0 = Round(sp.Width / 2540 * 1440) '图片宽度(单位twip)
h0 = Round(sp.Height / 2540 * 1440) '图片高度(单位twip)
With Picture1
  .ScaleMode = 1 '坐标单位twip
  .AutoRedraw = True
  If w0 < .ScaleWidth And h0 < .ScaleHeight Then '图片小于Picture1
    .PaintPicture sp, (.ScaleWidth - w0) / 2, (.ScaleHeight - h0) / 2 '图片居中
  Else
    If w0 / h0 > .ScaleWidth / .ScaleHeight Then '上下留空白
      w1 = .ScaleWidth
      h1 = h0 * w1 / w0
    Else  '左右留空白
      h1 = .ScaleHeight
      w1 = w0 * h1 / h0
    End If
    '显示缩放的图片
    .PaintPicture sp, (.ScaleWidth - w1) / 2, (.ScaleHeight - h1) / 2, w1, h1
  End If
End With