Ist es möglich, die Erweiterung für eine beliebige System.Drawing.Imaging.ImageFormat
zu bekommen? (C #)
Beispiel:
%Vor%Dies kann leicht als Nachschlagetabelle gemacht werden, aber wollte wissen, ob es irgendetwas nativ in .Net gibt.
Ich habe jetzt 3 Wege gefunden, dies zu tun, von denen die letzten 2 gleichwertig sind. Alle sind Erweiterungsmethoden und beabsichtigen, eine Erweiterung in der Form ".foo"
zu erzeugen %Vor%Als Erweiterungsmethoden können sie wie folgt aufgerufen werden:
%Vor%Die resultierende Zeichenfolge lautet:
%Vor%Um diese neuen Methoden zu vergleichen, habe ich eine kurze Konsolen-App erstellt:
%Vor%Dies führt zu der folgenden Ausgabe:
%Vor%Sie können sehen, dass die ursprüngliche Methode fehlschlägt und eine '.IDFK' für die dunkleren Formate erzeugt, während die anderen Methoden nur den Namen des Formats verwenden; ImageFormat.Jpeg, '.jpeg'; ImageFormat.MemoryBmp, '.memorybmp'; usw. ..
Wenn also die ursprüngliche Frage ".tif" und nicht ".tiff" heißen soll, scheint es, dass die erste Methode für Sie ist. Oder vielleicht wäre eine Kombination der beiden ideal:
%Vor%Ich habe etwas verfeinert auf Niklas Antwort, weil ich nach einer Möglichkeit suchte, eine Dateierweiterung passend für einen Dateinamen zu bekommen. Ich poste meine Lösung hier für den Fall, dass andere Googler das gleiche suchen:
%Vor%Wenn du es also so nennst:
%Vor%Die resultierende Zeichenfolge lautet:
%Vor%Tags und Links .net c# system.drawing.imaging