将一个图片按比例缩放显示在一个Frame中

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

代码如下:

'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

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航