Как получить список форматов изображений, поддерживаемых System.Windows.Media.Imaging.BitmapImage?Получить поддерживаемые форматы изображений из BitmapImage
Я пишу простой инструмент обработки изображений в C# WPF. Класс BitmapImage является одним из наиболее полезных классов растровых изображений, поскольку он способен декодировать из самых разных форматов.
В частности, он может открывать NEF (формат RAW от Nikon) на моем компьютере. Вероятно, BitmapImage может открыть широкий спектр форматов RAW от других производителей, функцию, которую я очень хочу использовать.
Поскольку я не знаю каждого формата, который можно открыть как BitmapImage, в настоящее время я использую try/catch, чтобы попытаться построить BitmapImage из каждого файла, который пользователь пытается открыть. Это явно не самый эффективный способ.
Насколько я знаю, BitmapImage наследует от BitmapSource, который решает which files it can open by looking on the user's system for available codecs. Вероятно, поэтому доступность кодеков варьируется между машинами, то есть список поддерживаемых форматов не может быть жестко закодирован в программу. Мне нужен способ проверить, что эти поддерживаемые форматы на машине пользователя.
Я нашел this method в System.Drawing. Это возвращает список поддерживаемых кодеков со списком поддерживаемых расширений файлов, а эквивалент для System.Windows.Media.Imaging - именно то, что мне нужно.
[Этот ответ] (http://stackoverflow.com/a/8343497/1136211) может быть интересным. – Clemens