Maison > développement back-end > C++ > Comment redimensionner proportionnellement des images tout en conservant les proportions avec des contraintes de hauteur maximale et de largeur maximale ?

Comment redimensionner proportionnellement des images tout en conservant les proportions avec des contraintes de hauteur maximale et de largeur maximale ?

Barbara Streisand
Libérer: 2025-01-06 14:19:43
original
855 Les gens l'ont consulté

How to Proportionally Resize Images While Maintaining Aspect Ratio with Max Height and Max Width Constraints?

Redimensionner les images proportionnellement avec les contraintes MaxHeight et MaxWidth

Le maintien des proportions d'une image est crucial lors de sa mise à l'échelle pour l'adapter à des dimensions spécifiques. Dans ce scénario, l'objectif est de redimensionner une image proportionnellement tout en respectant les contraintes maximales de hauteur et de largeur spécifiées.

Pour y parvenir, la largeur et la hauteur de l'image sont comparées aux valeurs maximales. Si l'une des dimensions dépasse sa limite, l'image est réduite jusqu'à ce que les deux dimensions répondent aux contraintes. Cependant, cette mise à l'échelle doit conserver le rapport hauteur/largeur d'origine pour éviter toute distorsion.

Une façon d'y parvenir consiste à utiliser le code suivant :

public static Image ScaleImage(Image image, int maxWidth, int maxHeight)
{
    double ratioX = (double)maxWidth / image.Width;
    double ratioY = (double)maxHeight / image.Height;
    double ratio = Math.Min(ratioX, ratioY);

    int newWidth = (int)(image.Width * ratio);
    int newHeight = (int)(image.Height * ratio);

    Bitmap newImage = new Bitmap(newWidth, newHeight);

    using (Graphics graphics = Graphics.FromImage(newImage))
    {
        graphics.DrawImage(image, 0, 0, newWidth, newHeight);
    }

    return newImage;
}
Copier après la connexion

Dans ce code, les rapports de largeur et de hauteur ( ratioX et ratioY) sont calculés pour déterminer dans quelle mesure l'image doit être réduite. Le minimum de ces ratios (ratio) garantit que l'image n'est pas redimensionnée au-delà des contraintes maximales spécifiées tout en conservant son rapport hauteur/largeur. Les nouvelles dimensions (newWidth et newHeight) sont calculées en fonction du rapport de mise à l'échelle. Enfin, un nouveau bitmap (newImage) est créé et l'image originale y est dessinée avec les dimensions mises à l'échelle.

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