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