保持宽高比的图像调整大小






2.56/5 (13投票s)
本文档解释了如何在网页中动态调整图像大小到指定尺寸,同时保持原始的宽高比。
引言
本文档解释了如何在网页中动态调整图像大小到指定尺寸,同时保持原始的宽高比。如果您有一个固定区域用于放置未知尺寸的图像,您可以调整图像大小以符合所需的宽度和高度限制,而不会拉伸它。
源代码
您可以下载源代码,其中包含一个简单的 ASPX 网页,其中包含三个控件:两个文本框,您可以在其中设置图像的最大宽度和高度,以及一个启动图像加载的按钮。当您单击该按钮时,页面将加载给定的图像(包含的图像为 450x45 像素,您可以以编程方式更改它)并调整其大小以符合给定的限制,而不会拉伸它。
页面的主要函数如下
string COMMONFUNCTIONS_IMAGES_RESIZE_TO_TAG(System.Drawing.Image img,
int MaxWidth, int MaxHeight)
{
if (img.Width > MaxWidth || img.Height > MaxHeight)
{
double widthRatio = (double) img.Width / (double) MaxWidth;
double heightRatio = (double) img.Height / (double) MaxHeight;
double ratio = Math.Max(widthRatio, heightRatio);
int newWidth = (int) (img.Width / ratio);
int newHeight = (int) (img.Height / ratio);
return " width=\"" + newWidth.ToString() + "\"" +
" height=\"" + newHeight.ToString() + "\" ";
}
else
{
return "";
}
}
此函数具有以下参数
img
:要调整大小的System.Drawing.Image
。MaxWidth
:最大宽度(从文本框获取)。MaxHeight
:最大高度(从文本框获取)。
它返回一个格式如下的 string
:" width="100" height="50" "
。
您可以将这段代码放在有用的位置,例如,在 img
标签中。
如何运行应用程序
解压缩并使用 IIS 或其他 Web 服务器(如 Cassini 或 WebMatrix)运行 .aspx 文件。
欢迎在您的网页中使用此代码。