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