新客网WWW.XKER.COM:致力做中国最专业的网络学院!
学院: 操作系统 - 网络应用 - 服务器 - 网络安全 - 工具软件 - 办公软件 - Web开发 - 数据库 - 网页设计 - 图形图像 - 媒体动画 - 硬件学堂 - 存储频道 - QQ专区
您的位置:首页 > 软件开发 > .Net开发 > Asp.net教程 > 正文:将一个图片按比例缩放显示在一个Frame中。

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

新客网 XKER.COM 2004-07-12 来源: 收藏本文
代码如下:

'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

收藏】 【评论】 【推荐】 【投稿】 【打印】 【关闭
发表评论
要记得去论坛讨论,点击注册新会员匿名评论
评论内容:不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
阅读排行
随机推荐
实用信息推荐