Größe von Bildern proportional mit MaxHeight- und MaxWidth-Einschränkungen ändern
Die Beibehaltung des Seitenverhältnisses eines Bildes ist entscheidend, wenn es an bestimmte Abmessungen skaliert wird. In diesem Szenario besteht das Ziel darin, die Größe eines Bildes proportional zu ändern und dabei die angegebenen maximalen Höhen- und Breitenbeschränkungen einzuhalten.
Um dies zu erreichen, werden die Breite und Höhe des Bildes mit den Maximalwerten verglichen. Wenn eine der Dimensionen ihren Grenzwert überschreitet, wird das Bild verkleinert, bis beide Dimensionen die Einschränkungen erfüllen. Bei dieser Skalierung muss jedoch das ursprüngliche Seitenverhältnis erhalten bleiben, um Verzerrungen zu vermeiden.
Eine Möglichkeit, dies zu erreichen, ist der folgende Code:
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; }
In diesem Code sind die Breiten- und Höhenverhältnisse ( ratioX und ratioY) werden berechnet, um zu bestimmen, wie stark das Bild verkleinert werden muss. Das Minimum dieser Verhältnisse (Verhältnis) stellt sicher, dass die Größe des Bildes nicht über die angegebenen maximalen Einschränkungen hinaus verändert wird, während das Seitenverhältnis beibehalten wird. Die neuen Abmessungen (newWidth und newHeight) werden basierend auf dem Skalierungsverhältnis berechnet. Abschließend wird eine neue Bitmap (newImage) erstellt und das Originalbild mit den skalierten Abmessungen darauf gezeichnet.
Das obige ist der detaillierte Inhalt vonWie kann ich die Größe von Bildern proportional ändern und gleichzeitig das Seitenverhältnis mit Einschränkungen für maximale Höhe und maximale Breite beibehalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!