C# : Comment redimensionner l'image proportionnellement avec hauteur max

J'ai besoin de redimensionner mon image, proportionnellement, sans changer l'aspect ratio.J'ai le code pour redimensionner avec fixe en hauteur et en largeur, mais j'ai besoin de redimensionner l'image proportionnellement à la hauteur maximum(disons 600 pixels). Comment puis-je modifier le code pour l'adapter à mon besoin?

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;
}

Veuillez fournir vos précieux pensées.

Quel est le problème avec ce code?
avec tout le respect dû , merci de passer par mon exigence. Ce code utilise max hauteur et la largeur maximale est alors que j'ai besoin proportionnelle de changer l'image de la dimension de maintien de la hauteur, seul un nombre maximum (disons 600).
Je ne sais pas quel est le problème, mais si je ne me trompe pas, votre code ne redimensionner l'image sans changer le ratio d'aspect. Pouvez-vous ajouter un exemple de ce à quoi vous vous attendez?
utilisation ratioY au lieu de ratio, pour le calcul de la newWidth et newHeigth
Oui, vous avez absolument raison, mais dans mon code, je l'ai passer une hauteur fixe les sna de la largeur de la ScaleImage méthode. Ce que j'ai vraiment besoin est de passer de la dimension avec une hauteur fixe, mais une somme proportionnelle à la largeur. EST-il possible de réaliser cela?

OriginalL'auteur user735647 | 2012-04-26