我需要調整我的圖像的比例,而不改變縱橫比。我有代碼來調整高度和寬度的固定大小,但我需要調整圖像的比例與最大高度(比如600像素)。我如何修改代碼以符合我的要求?C#:如何按比例調整圖像的最大高度
public static void Main()
{
var image = Image.FromFile(@"c:\logo.png");
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);
Graphics.FromImage(newImage).DrawImage(image, 0, 0, newWidth, newHeight);
return newImage;
}
請提供您的寶貴意見。
什麼是與此代碼的問題? – Likurg 2012-04-26 07:33:52
尊重,請按照我的要求。此代碼使用最大高度和最大寬度,而我需要按比例更改圖像尺寸,使高度保持最大值(例如600)。 – user735647 2012-04-26 07:38:57
我不知道問題是什麼,但如果我沒有弄錯,代碼會在不改變寬高比的情況下調整圖像大小。你可以添加一個你期望發生的例子嗎? – 2012-04-26 07:40:12