Scalable a picture is displayed in a frame.

zhaozj2021-02-16  51

Running renderings:

code show as below:

'Form1.frmVERSION 5.00Object = "{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' default window 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 Lef t = 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 endendattribute vb_name = "form1" attribute vb_globalnamespace = falsettribute vb_creatable =

Falsettribute vb_predeclaredid = truedtribute vb_exposed = FalseOption Explicitdim ReturnHeight As Long, ReturnWidth As Long

Private Sub Command1_Click () Dim BigWidth As Long, BigHeight As LongDim StretchWidth As Long, StretchHeight As Long CommonDialog1.Filter = "jpeg files | * .jpg | gif file | * .gif | All files |. * *" 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 ifend 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 'need to be scaled 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 IfEnd Sub

转载请注明原文地址:https://www.9cbs.com/read-21214.html

New Post(0)