【发布时间】:2021-06-04 22:02:22
【问题描述】:
如何获取 System.Windows.Media.Imaging.BitmapImage 支持的图像格式列表?
我正在用 C# WPF 编写一个简单的图像处理工具。 BitmapImage 类是更有用的位图类之一,因为它能够从多种格式解码。
特别是它可以在我的电脑上打开 NEF(尼康的 RAW 格式)。 BitmapImage 很可能可以打开其他制造商的各种 RAW 格式,这是我热衷于使用的功能。
由于我不知道可以作为 BitmapImage 打开的每种格式,我目前正在使用 try/catch 来尝试从用户尝试打开的每个文件中构造 BitmapImage。这显然不是最有效的方法。
据我所知,BitmapImage 继承自 BitmapSource,它决定了which files it can open by looking on the user's system for available codecs。因此,编解码器的可用性可能因机器而异,这意味着无法将支持的格式列表硬编码到程序中。我需要一种方法来检查用户机器上这些支持的格式是什么。
我在 System.Drawing 中找到了this method。这将返回支持的编解码器列表和支持的文件扩展名列表,而 Systems.Windows.Media.Imaging 的等价物正是我所需要的。
【问题讨论】:
-
This answer 可能很有趣。
标签: c# .net wpf bitmapimage