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; }
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!