首頁 > 後端開發 > C++ > 如何在 C# 中使用 MaxHeight 和 MaxWidth 約束按比例調整影像大小?

如何在 C# 中使用 MaxHeight 和 MaxWidth 約束按比例調整影像大小?

Linda Hamilton
發布: 2025-01-06 13:55:40
原創
829 人瀏覽過

How to Proportionally Resize Images with MaxHeight and MaxWidth Constraints in C#?

使用MaxHeight 和MaxWidth 約束按比例調整影像大小

在指定約束內調整影像大小時保持寬高比是各種應用程序中的常見要求。使用 System.Drawing.Image,您可以按比例調整影像大小,同時確保它們保持在最大寬度和高度限制內。

問題:

如果影像的寬度或高度超過指定的最大值,則需要按比例調整大小。但是,調整大小後,確保寬度和高度均不超過最大限制至關重要。應調整影像大小,直到其適合最大尺寸,同時保持原始寬高比。

解決方案:

提供的C# 代碼演示瞭如何實現this:

public static void Test()
{
    using (var image = Image.FromFile(@"c:\logo.png"))
    using (var newImage = ScaleImage(image, 300, 400))
    {
        newImage.Save(@"c:\test.png", ImageFormat.Png);
    }
}

public static Image ScaleImage(Image image, int maxWidth, int maxHeight)
{
    var ratioX = (double)maxWidth / image.Width;
    var ratioY = (double)maxHeight / image.Height;
    var ratio = Math.Min(ratioX, ratioY);

    var newWidth = (int)(image.Width * ratio);
    var newHeight = (int)(image.Height * ratio);

    var newImage = new Bitmap(newWidth, newHeight);

    using (var graphics = Graphics.FromImage(newImage))
        graphics.DrawImage(image, 0, 0, newWidth, newHeight);

    return newImage;
}
登入後複製

說明:

  • ScaleImage方法以影像、最大寬度和最大高度作為參數。
  • 它計算最大寬度和高度與原始影像寬度和高度的比率。
  • 最小比例值用於按比例調整影像大小。
  • 根據比例計算新的寬度和高度。
  • 建立具有新尺寸的點陣圖,並繪製原始影像以指定的尺寸放置在其上。
  • 傳回按比例調整大小的影像。

透過使用此技術,您可以調整影像大小,同時保持其縱橫比,確保它們符合指定的最大尺寸。

以上是如何在 C# 中使用 MaxHeight 和 MaxWidth 約束按比例調整影像大小?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板