首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 笔记本电脑 | 北大青鸟 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Dotnet频道
中国IT教育
Google
首页 ASP.NET  C#  XML/WebService ADO.NET VC.NET VB.NET .NET 资讯动态 专题 RSS订阅 讨论 下载
您现在的位置: 中国IT实验室 >> Dotnet >> ASP.NET >> 正文

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

  代码如下:

'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
【责编:yuan】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·开源软件测试工具学习专题
 ·JSP Web开发 入门基础到高手进阶教程…
 ·JavaFX—是Java桌面的新希望么?
 ·安全至上 .NET开发安全策略…
 ·测试用例设计之道-测试用例学习专题
 ·面向Java开发人员的Scala指南
 ·Java设计模式之实例详解
 ·Oracle数据库11g 面向DBA和开发人员的重要新特性…
 ·桌面应用软件编程 J2SE技术详解…
 ·我“炫”我精彩-------WPF开发教程
 今日更新
 社区讨论
 博客论点
 频道精选
 Dotnet频道相关导航