Heim > Backend-Entwicklung > C++ > Wie 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?

Wie 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?

Barbara Streisand
Freigeben: 2025-01-06 14:19:43
Original
855 Leute haben es durchsucht

How to Proportionally Resize Images While Maintaining Aspect Ratio with Max Height and Max Width Constraints?

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;
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage