Feedback

C# - ImageFormat eines System.Drawing.Image bestimmen

Veröffentlicht von am 23.05.2013
(2 Bewertungen)
Diese Methode gibt das richtige System.Drawing.Imaging.ImageFormat eines Images zurück.
GFU-Schulungen  [Anzeige]

C# 2019/2017/2015 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

/// <summary>
/// Returns image format of a given image
/// </summary>
/// <param name="image">The image</param>
/// <returns>Image format of the given image</returns>
public static ImageFormat GetImageFormatFromImage(Image image)
{
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Jpeg))
        return System.Drawing.Imaging.ImageFormat.Jpeg;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Bmp))
        return System.Drawing.Imaging.ImageFormat.Bmp;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Png))
        return System.Drawing.Imaging.ImageFormat.Png;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Gif))
        return System.Drawing.Imaging.ImageFormat.Gif;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Emf))
        return System.Drawing.Imaging.ImageFormat.Emf;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Exif))
        return System.Drawing.Imaging.ImageFormat.Exif;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Icon))
        return System.Drawing.Imaging.ImageFormat.Icon;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.MemoryBmp))
        return System.Drawing.Imaging.ImageFormat.MemoryBmp;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Tiff))
        return System.Drawing.Imaging.ImageFormat.Tiff;
    if (image.RawFormat.Equals(System.Drawing.Imaging.ImageFormat.Wmf))
        return System.Drawing.Imaging.ImageFormat.Wmf;

    throw new Exception("Image format not supported");
}

4 Kommentare zum Snippet

lypô schrieb am 30.01.2014:
Wär' das nicht mit switch/case einfacher? Zumal die switch-Methode ja wohl schneller läuft.
dariusarnold schrieb am 30.01.2014:
jap; und im Standardfall hat sie gegenüber if() if() if() auch den Vorteil, dass sie bei einem gefundenen Element aufhört (else if geht dazu auch, ist aber langsammer). Hier ist das aber egal, wegen der return-Statements, weswegen der Rest ja eh ignoriert wird.
Koopakiller schrieb am 30.01.2014:
Nein wäre es nicht! Switch funktioniert unter C# nicht mit Klasseninstanzen, was ImageFormat's nunmal sind.

Eine Alternative zum Übersetzen in die statischen Versionen wäre über Reflection.
dariusarnold schrieb am 03.02.2014:
Ich nehme alles zurück und behaupte das Gegenteil :)
 

Logge dich ein, um hier zu kommentieren!