Maison > développement back-end > C++ > Comment redimensionner proportionnellement des images avec les contraintes MaxHeight et MaxWidth en C# ?

Comment redimensionner proportionnellement des images avec les contraintes MaxHeight et MaxWidth en C# ?

Linda Hamilton
Libérer: 2025-01-06 13:55:40
original
829 Les gens l'ont consulté

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

Redimensionner les images proportionnellement avec les contraintes MaxHeight et MaxWidth

Le maintien des proportions lors du redimensionnement des images dans les limites spécifiées est une exigence courante dans diverses applications. À l'aide de System.Drawing.Image, vous pouvez redimensionner les images proportionnellement tout en vous assurant qu'elles restent dans les limites maximales de largeur et de hauteur.

Problème :

Si la largeur ou la hauteur d'une image dépasse le maximum spécifié, il doit être redimensionné proportionnellement. Cependant, après le redimensionnement, il est crucial de s'assurer que ni la largeur ni la hauteur ne dépassent toujours la limite maximale. L'image doit être redimensionnée jusqu'à ce qu'elle tienne dans les dimensions maximales tout en conservant les proportions d'origine.

Solution :

Le code C# fourni montre comment y parvenir :

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;
}
Copier après la connexion

Explication :

  • La méthode ScaleImage prend une image, une largeur maximale et une hauteur maximale comme paramètres.
  • Il calcule le rapport entre la largeur et la hauteur maximales et la largeur et la hauteur de l'image d'origine.
  • La valeur du rapport minimum est utilisée pour redimensionnez l'image proportionnellement.
  • La nouvelle largeur et la nouvelle hauteur sont calculées en fonction du rapport.
  • Un Bitmap avec les nouvelles dimensions est créé et l'image d'origine est dessiné dessus avec les dimensions spécifiées.
  • L'image redimensionnée proportionnellement résultante est renvoyée.

En utilisant cette technique, vous pouvez redimensionner les images tout en conservant leur rapport hauteur/largeur, en vous assurant qu'elles s'adaptent dans les dimensions maximales spécifiées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal