zoukankan
html css js c++ java
Asp.Net中图片大小的缩放
在Asp.Net中显示图片的时候,如果给定一个固定大小的容器,如<Table>,图片的大小如何根据容器的大小进行比例缩放呢。以下是一个比较简单的函数,根据图片的宽高比例进行计算,缩放后保持比例不变。
//
ViewSize 外框大小
//
ImageSize 图片的实际大小
public
Size Resize(Size ViewSize, Size ImageSize)
{
Size MySize
=
new
Size();
if
(ViewSize.Width
>
ViewSize.Height)
//
宽大于高
{
if
(ImageSize.Width
>
ImageSize.Height)
//
按比例
{
float
scale
=
ImageSize.Height
/
(
float
)ImageSize.Width;
if
(ViewSize.Height
/
(
float
)ViewSize.Width
<
scale)
{
MySize.Height
=
ViewSize.Height;
MySize.Width
=
(
int
)(ViewSize.Height
/
scale);
}
else
{
MySize.Width
=
ViewSize.Width;
MySize.Height
=
(
int
)(ViewSize.Width
*
scale);
}
}
else
if
(ImageSize.Height
>
ImageSize.Width)
//
非比例
{
float
scale
=
ImageSize.Width
/
(
float
)ImageSize.Height;
MySize.Height
=
ViewSize.Height;
MySize.Width
=
(
int
)(ViewSize.Height
*
scale);
}
else
//
正方
{
MySize.Height
=
ViewSize.Height;
MySize.Width
=
ViewSize.Height;
}
}
else
if
(ViewSize.Width
<
ViewSize.Height)
//
高大于宽
{
if
(ImageSize.Width
<
ImageSize.Height)
//
按比例
{
float
scale
=
ImageSize.Width
/
(
float
)ImageSize.Height;
if
(ViewSize.Width
/
(
float
)ViewSize.Height
<
scale)
{
MySize.Width
=
ViewSize.Width;
MySize.Height
=
(
int
)(ViewSize.Width
/
scale);
}
else
{
MySize.Height
=
ViewSize.Height;
MySize.Width
=
(
int
)(ViewSize.Height
*
scale);
}
}
else
if
(ImageSize.Height
<
ImageSize.Width)
//
非比例
{
float
scale
=
ImageSize.Height
/
(
float
)ImageSize.Width;
MySize.Width
=
ViewSize.Width;
MySize.Height
=
(
int
)(ViewSize.Width
*
scale);
}
else
//
正方
{
MySize.Height
=
ViewSize.Width;
MySize.Width
=
ViewSize.Width;
}
}
else
//
正方
{
if
(ImageSize.Width
>
ImageSize.Height)
//
宽大于高
{
float
scale
=
ImageSize.Height
/
(
float
)ImageSize.Width;
MySize.Width
=
ViewSize.Width;
MySize.Height
=
(
int
)(ViewSize.Width
*
scale);
}
else
if
(ImageSize.Width
<
ImageSize.Height)
//
高大于宽
{
float
scale
=
ImageSize.Width
/
(
float
)ImageSize.Height;
MySize.Height
=
ViewSize.Height;
MySize.Width
=
(
int
)(ViewSize.Height
*
scale);
}
else
//
正方
{
MySize.Height
=
ViewSize.Height;
MySize.Width
=
ViewSize.Height;
}
}
return
MySize;
}
查看全文
相关阅读:
DotNetNuke 5 C#版本解读之1--架构介绍
关于加入外包公司
《深入浅出WPF》视频列表
倒序输出字符串
C#基础—— check、lock、using语句归纳
Asp.net页面之间传递参数的几种方法
sual C#中编写多线程程序之起步
Head.First.ObjectOriented.Design.and.Analysis《深入浅出面向对象的分析与设计》读书笔记(一)
索引分类
表单提交中Get和Post方式的区别
原文地址:https://www.cnblogs.com/faib/p/754191.html
最新文章
Remoting研究
人的问题
Microsoft .NET Pet Shop 4 架构与技术分析
学好英语的42个经典要诀
闲话“多线程”
一年365天 每日说一句英语
C++多重继承与虚基类及与.NET的比较
Attribute在拦截机制上的应用
asp.net的<% %>总结
学习
热门文章
AOP技术介绍--(.Net中关于AOP的实现)
Thread Examples
AOP技术介绍--(.Net平台AOP技术研究)
C#实现顺序表(线性表)
泛型类的继承与包含关系中的未指定标签
[原创]ASP.NET中Response.Redirect()方法深度剖析[转]
DotNetNuke 5 C#版本解读之2--HTTP Modules
[学习笔记]UML小结以及基于领域模型的系统设计初步
C#实现单链表(线性表)
C盘空间总是逐渐变小,一般都是什么原因,如何使空间恢复
Copyright © 2011-2022 走看看