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

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

DDD
Libérer: 2025-01-06 14:10:43
original
671 Les gens l'ont consulté

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

Comment redimensionner une image proportionnellement avec des contraintes maximales de hauteur et de largeur

Dans de nombreux scénarios, il devient nécessaire de redimensionner les images tout en conservant leur valeur initiale rapport hauteur/largeur. Ceci est particulièrement important lorsqu'il s'agit de contraintes sur la hauteur et la largeur maximales de l'image redimensionnée. System.Drawing.Image en C# fournit une solution pratique pour effectuer cette tâche.

Énoncé du problème :

Étant donné une image avec une largeur et une hauteur spécifiques, nous devons la redimensionner proportionnellement pour répondre aux contraintes maximales de hauteur et de largeur tout en conservant le rapport hauteur/largeur. Le processus de redimensionnement doit ajuster les dimensions de manière itérative jusqu'à ce que la largeur et la hauteur soient dans les limites tout en conservant la taille maximale possible.

Solution :

Le code ci-dessous montre comment redimensionner une image proportionnellement dans les contraintes spécifiées :

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

Dans ce code, la méthode ScaleImage prend une image, une largeur maximale et une hauteur maximale comme saisir. Il calcule le facteur d'échelle minimum qui garantit que ni la largeur ni la hauteur ne dépassent le maximum spécifié tout en conservant le rapport hauteur/largeur d'origine. La nouvelle image est ensuite créée avec les dimensions mises à l'échelle et rendue à l'aide de Graphics.DrawImage.

Pour utiliser cette méthode, transmettez simplement l'image d'origine, la largeur maximale et la hauteur maximale comme arguments. La méthode renvoie l'image redimensionnée, qui peut ensuite être enregistrée ou utilisée selon les besoins.

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