將一個圖片按比例縮放顯示在一個Frame中

來源:互聯網
上載者:User
顯示 代碼如下:

'Form1.frm
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 5010
ClientLeft = 60
ClientTop = 345
ClientWidth = 7800
LinkTopic = "Form1"
ScaleHeight = 334
ScaleMode = 3 'Pixel
ScaleWidth = 520
StartUpPosition = 3 '視窗預設
Begin MSComDlg.CommonDialog CommonDialog1
Left = 4635
Top = 3120
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.Frame Frame1
Caption = "Frame1"
Height = 3000
Left = 4500
TabIndex = 2
Top = 30
Width = 3180
Begin VB.PictureBox Picture2
Appearance = 0 'Flat
ForeColor = &H80000008&
Height = 2625
Left = 120
ScaleHeight = 173
ScaleMode = 3 'Pixel
ScaleWidth = 194
TabIndex = 3
Top = 255
Width = 2940
Begin VB.Image Image1
Height = 1575
Left = 465
Top = 390
Width = 1965
End
End
End
Begin VB.CommandButton Command1
Caption = "&Load Picture"
Height = 330
Left = 5400
TabIndex = 0
Top = 3150
Width = 1425
End
Begin VB.PictureBox Picture1
Appearance = 0 'Flat
AutoSize = -1 'True
BorderStyle = 0 'None
ForeColor = &H80000008&
Height = 4425
Left = 60
ScaleHeight = 4425
ScaleWidth = 4380
TabIndex = 1
Top = 105
Width = 4380
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Dim ReturnHeight As Long, ReturnWidth As Long

Private Sub Command1_Click()
Dim BigWidth As Long, BigHeight As Long
Dim StretchWidth As Long, StretchHeight As Long
CommonDialog1.Filter = "jpeg檔案|*.jpg|gif檔案|*.gif|所有檔案|*.*"
CommonDialog1.ShowOpen
If CommonDialog1.FileName <> "" Then
Picture1.Picture = LoadPicture(CommonDialog1.FileName)

BigWidth = Picture1.Width
BigHeight = Picture1.Height
StretchWidth = Picture2.ScaleWidth
StretchHeight = Picture2.ScaleHeight

StretchImage BigWidth, BigHeight, StretchWidth, StretchHeight, True

Image1.Stretch = True
Image1.Width = ReturnWidth
Image1.Height = ReturnHeight

Image1.Left = (Picture2.ScaleWidth - Image1.Width) / 2
Image1.Top = (Picture2.ScaleHeight - Image1.Height) / 2
Image1.Picture = LoadPicture(CommonDialog1.FileName)
End If
End Sub

Private Sub StretchImage(OriginalWidth As Long, OriginalHeight As Long, StretchWidth As Long, StretchHeight As Long, Optional Flag As Boolean = False)
If (OriginalWidth >= StretchWidth Or OriginalHeight > StretchHeight) Or Flag = True Then '需要縮放
If OriginalWidth / OriginalHeight >= StretchWidth / StretchHeight Then
ReturnWidth = StretchWidth
ReturnHeight = StretchWidth / OriginalWidth * OriginalHeight
Else
ReturnHeight = StretchHeight
ReturnWidth = StretchHeight / OriginalHeight * OriginalWidth
End If
Else
ReturnHeight = OriginalHeight
ReturnWidth = OriginalWidth
End If
End Sub




相關文章

E-Commerce Solutions

Leverage the same tools powering the Alibaba Ecosystem

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。