Wie kann ich eine Liste der Bildformate erhalten, die von System.Windows.Media.Imaging.BitmapImage unterstützt werden?Unterstützte Bildformate von BitmapImage
Ich schreibe ein einfaches Bildverarbeitungswerkzeug in C# WPF. Die BitmapImage-Klasse ist eine der nützlicheren Bitmap-Klassen, da sie aus einer Vielzahl von Formaten entschlüsseln kann.
Insbesondere ist es in der Lage, NEF (Nikon RAW-Format) auf meinem Computer zu öffnen. Es ist wahrscheinlich, dass BitmapImage eine Vielzahl von RAW-Formaten anderer Hersteller öffnen kann, eine Funktion, die ich gerne nutzen möchte.
Da ich nicht jedes Format kenne, das als BitmapImage geöffnet werden kann, verwende ich derzeit eine try/catch, um ein BitmapImage aus jeder Datei zu erstellen, die der Benutzer zu öffnen versucht. Dies ist eindeutig nicht der effizienteste Weg.
Soweit ich weiß, erbt BitmapImage von BitmapSource, die which files it can open by looking on the user's system for available codecs entscheidet. Es ist daher wahrscheinlich, dass die Codec-Verfügbarkeit zwischen den Maschinen variiert, was bedeutet, dass eine Liste der unterstützten Formate nicht fest in das Programm codiert werden kann. Ich brauche eine Möglichkeit zu überprüfen, was diese unterstützten Formate auf dem Computer eines Benutzers sind.
Ich fand this method in System.Drawing. Dies gibt eine Liste der unterstützten Codecs mit einer Liste der unterstützten Dateierweiterungen zurück, und eine Entsprechung für Systems.Windows.Media.Imaging wäre genau das, was ich brauche.
[Diese Antwort] (http://stackoverflow.com/a/8343497/1136211) kann interessant sein. – Clemens