Maison > développement back-end > C++ > Comment redimensionner proportionnellement les images tout en conservant une largeur et une hauteur maximales ?

Comment redimensionner proportionnellement les images tout en conservant une largeur et une hauteur maximales ?

DDD
Libérer: 2025-01-06 15:30:40
original
167 Les gens l'ont consulté

How to Proportionally Resize Images While Maintaining Maximum Width and Height?

Redimensionner les images proportionnellement : conserver la largeur et la hauteur maximales

Dans les scénarios où les images présentent des dimensions dépassant les limites maximales spécifiées, il devient crucial de les mettre à l'échelle baisse proportionnellement. Cependant, cet ajustement nécessite de s'assurer que la largeur et la hauteur restent dans ces contraintes. De plus, le processus doit respecter le rapport hauteur/largeur d'origine.

Pour ce faire, une solution sur mesure est présentée :

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

La méthode ScaleImage calcule méticuleusement le facteur d'échelle approprié pour réduire proportionnellement le image sans compromettre son rapport hauteur/largeur. Pour ce faire, il compare la largeur et la hauteur maximales fournies avec les dimensions de l'image d'origine. Une fois le rapport correct déterminé, il est appliqué aux deux dimensions pour en dériver les valeurs mises à l’échelle. Un nouveau bitmap est ensuite créé avec les dimensions mises à l'échelle et l'image originale y est dessinée proportionnellement à l'aide du contexte graphique. L'image résultante conserve les contraintes maximales tout en préservant ses proportions d'origine.

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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal