Feedback

C# - "Zoom" für System.Drawing.Image

Veröffentlicht von am 12.05.2013
(1 Bewertungen)
Manchmal braucht man (oder zumindest ich) eine Funktion um Bilder - dem ImageLayout 'Zoom' entsprechend - zu vergrößern. Sprich so, dass die Seitenverhältnisse beibehalten werden.

Beispiel:
Man hat ein Label 'myLabel'.
Dort soll ein beliebig großes Bild (Image-Eigenschaft) drauf abgebildet werden:
myLabel.Image = new Bitmap("myImage.jpg").Zoom(myLabel.Size);
GFU-Schulungen  [Anzeige]

Visual Studio Team Foundation Server 2017/2015 (TFS) für Projektmitglieder - Kompakt

Nach Teilnahme an dieser Schulung sind Ihnen die Grundlagen von ALM geläufig. Sie planen und steuern Projekte effizient mit dem Visual Studio Team Foundation Server.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

public static class ExtensionMethods
{
    public static Bitmap Zoom(this Image img, Size max)
    {
        double factorHo = (double)max.Width / (double)img.Width;
        double factorVe = (double)max.Height / (double)img.Height;
        double factor = GetSmaller(factorHo, factorVe);
        return new Bitmap(img, new Size((int)(img.Width * factor), (int)(img.Height * factor)));
    }

    private static double GetSmaller(double n1, double n2)
    {
        if (n1 < n2)
            return n1;
        else
            return n2;
    }
}
Abgelegt unter Zoom, Image, Bild, skallieren.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!