Comment proportionnelle redimensionnement de l'image de n'importe quel type .NET?

Est possible de redimensionner l'image proportionnellement de manière indépendante du type d'image (bmp, jpg, png, etc)?

J'ai ce code et de savoir que quelque chose est manquant (mais ne savent pas quoi):

public bool ResizeImage(string fileName, string imgFileName,
    ImageFormat format, int width, int height)
{
    try
    {
        using (Image img = Image.FromFile(fileName))
        {
            Image thumbNail = new Bitmap(width, height, img.PixelFormat);
            Graphics g = Graphics.FromImage(thumbNail);
            g.CompositingQuality = CompositingQuality.HighQuality;
            g.SmoothingMode = SmoothingMode.HighQuality;
            g.InterpolationMode = InterpolationMode.HighQualityBicubic;
            Rectangle rect = new Rectangle(0, 0, width, height);
            g.DrawImage(img, rect);
            thumbNail.Save(imgFileName, format);
        }
        return true;
    }
    catch (Exception)
    {
        return false;
    }
}

Si pas possible, comment puis-je redimensionner proportionnelle d'une image jpeg?

Je sais que l'utilisation cette méthode, mais vous ne savez pas où mettre ce (!).

8-bits, PNG et Gif images re-quantification et de re-dithering quand redimensionnée (ce qui est non négligeable!). La meilleure solution est d'utiliser une bibliothèque gérée qui est conçu pour gérer tous les formats/edge cas correctement, maintenir le ratio d'aspect, etc. Le ImageResizer bibliothèque est un outil éprouvé pour cette tâche ainsi que le recadrage, la rotation et le retournement. Il est open-source, donc si vous avez envie de rouler votre propre solution, il suffit de copier & coller. Il permet aussi de beaucoup d'autres choses utiles via des plugins, comme le filigrane, la mise en cache disque, sql gouttes, S3 lecture, etc ...
Est venu ici pour améliorer mon home-grown image resizer et découvert Le ImageResizer de la Bibliothèque. C'est une EXCELLENTE. +1 pour Ordinateur Linguiste!
L'url de l'Ordinateur du Linguiste réponse ci-dessus devrait être: imageresizing.net

OriginalL'auteur eKek0 | 2009-04-01