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;
}
查看全文
相关阅读:
java常见异常总结
敏捷开发的七种主流方法
转:一位10年Java工作经验的架构师聊Java和工作经验
Map遍历
Mybatis中的模糊查询
Mybatis中动态SQL多条件查询
J2EE,LAMP和ASP.NET三者比较
关于加密
Md5Hash的测试
CentOS7 修改默认时区为 北京时间
原文地址:https://www.cnblogs.com/faib/p/754191.html
最新文章
java注解详解
【jdk源码3】HashMap源码学习
【jdk源码2】Objects源码学习
【jdk源码1】TreeMap源码学习
Java异常体系简析
【Kibana】Kibana入门教程
【疑难杂症04】EOFException异常详解
【Socket】Java Socket编程基础及深入讲解
【TCP/IP详解 卷1:协议】 第18章TCP连接的建立与终止
【Zookeeper】Zookeeper集群单节点提供服务
热门文章
【疑难杂症03】数据同步遇到的坑
【数据结构与算法】一致性Hash算法及Java实践
【疑难杂症02】ResultSet.next() 效率低下问题解决
【Redis】Redis学习(七) Redis 持久化之RDB和AOF
【Redis】Redis学习(六) Redis 基本运维
【Redis】Redis学习(五) Redis cluster模式详解
【Redis】Redis学习(四) Redis Sentinel模式详解
【Redis】Redis学习(三) Redis 主从模式详解
【Redis】Redis学习(二) master/slave、sentinel、Cluster简单总结
【Redis】Redis学习(一) Redis初步入门
Copyright © 2011-2022 走看看