一尘不染

使用MaxHeight和MaxWidth约束按比例调整图像大小

c#

使用System.Drawing.Image

如果图像的宽度或高度超过最大值,则需要按比例调整大小。调整大小后,需要确保宽度或高度均不超过限制。

宽度和高度将自动调整大小,直到不超过最大值和最小值(可能的最大尺寸),并保持该比例。


阅读 563

收藏
2020-05-19

共1个答案

一尘不染

像这样?

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;
}
2020-05-19