65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIcon

2.56/5 (13投票s)

2006年2月24日

CPOL

1分钟阅读

viewsIcon

81692

downloadIcon

1063

本文档解释了如何在网页中动态调整图像大小到指定尺寸,同时保持原始的宽高比。

引言

本文档解释了如何在网页中动态调整图像大小到指定尺寸,同时保持原始的宽高比。如果您有一个固定区域用于放置未知尺寸的图像,您可以调整图像大小以符合所需的宽度和高度限制,而不会拉伸它。

源代码

您可以下载源代码,其中包含一个简单的 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 文件。

欢迎在您的网页中使用此代码。

© . All rights reserved.