Heim > Backend-Entwicklung > C++ > Wie kann ich die Größe von Bildern mit MaxHeight- und MaxWidth-Einschränkungen in C# proportional ändern?

Wie kann ich die Größe von Bildern mit MaxHeight- und MaxWidth-Einschränkungen in C# proportional ändern?

Linda Hamilton
Freigeben: 2025-01-06 13:55:40
Original
829 Leute haben es durchsucht

How to Proportionally Resize Images with MaxHeight and MaxWidth Constraints in C#?

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

Erklärung:

  • Die ScaleImage-Methode Nimmt ein Bild, maximale Breite und maximale Höhe als Parameter.
  • Es berechnet das Verhältnis der maximalen Breite und Höhe zur Breite und Höhe des Originalbilds.
  • Der minimale Verhältniswert wird verwendet Ändern Sie die Größe des Bildes proportional.
  • Die neue Breite und Höhe werden basierend auf dem Verhältnis berechnet.
  • Eine Bitmap mit den neuen Abmessungen wird erstellt und das Originalbild wird mit den angegebenen Abmessungen darauf gezeichnet.
  • Das resultierende proportional geänderte Bild wird zurückgegeben.

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!

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