Proportionale Größenänderung von Bildern mit MaxHeight- und MaxWidth-Einschränkungen
Die Beibehaltung des Seitenverhältnisses bei der Größenänderung von Bildern innerhalb bestimmter Einschränkungen ist eine häufige Anforderung in verschiedenen Anwendungen. Mit System.Drawing.Image können Sie die Größe von Bildern proportional ändern und gleichzeitig sicherstellen, dass sie innerhalb der maximalen Breiten- und Höhengrenzen bleiben.
Problem:
Wenn die Breite oder Höhe eines Bildes den angegebenen Höchstwert überschreitet, muss die Größe proportional geändert werden. Nach der Größenänderung muss jedoch unbedingt darauf geachtet werden, dass weder die Breite noch die Höhe die maximale Grenze überschreiten. Die Größe des Bildes sollte geändert werden, bis es in die maximalen Abmessungen passt und dabei das ursprüngliche Seitenverhältnis beibehalten wird.
Lösung:
Der bereitgestellte C#-Code zeigt, wie dies erreicht wird:
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; }
Erklärung:
Mit dieser Technik können Sie die Größe von Bildern ändern und gleichzeitig ihr Seitenverhältnis beibehalten, um sicherzustellen, dass sie passen innerhalb der angegebenen Maximalmaße.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe von Bildern mit MaxHeight- und MaxWidth-Einschränkungen in C# proportional ändern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!