如何获取System.Windows.Media.Imaging.BitmapImage支持的图像格式列表?
我正在使用C# WPF编写一个简单的图像处理工具。BitmapImage类是比较有用的位图类之一,因为它能够解码各种格式的图像。
特别地,它能够在我的电脑上打开NEF(尼康的RAW格式)。很可能BitmapImage也能够打开其他制造商的各种RAW格式,这是我想要利用的功能。
由于我不知道BitmapImage能够打开哪些格式,目前我正在使用try/catch来尝试从用户尝试打开的每个文件构建BitmapImage。这显然不是最有效的方法。
据我所知,BitmapImage继承自BitmapSource,后者通过查找用户系统中可用的编解码器来决定可以打开哪些文件。因此,编解码器的可用性在不同的机器上可能会有所不同,这意味着支持的格式列表不能硬编码到程序中。我需要一种方法来检查用户机器上支持的这些格式。
我在 System.Drawing 中找到了 这种方法。它返回一个支持的编解码器列表和相应的文件扩展名列表,而 Systems.Windows.Media.Imaging 中类似的功能正是我所需的。