引用System.Drawing.Imaging命名空间的文档
Encoder类使用户能够扩展GDI +以支持任何图像格式.
然而,我找不到任何文档,示例或其他任何解释我如何实现自己的自定义文件格式的内容 - 大多数搜索返回有关传递EncoderParameters的大量信息,但没有实现我们自己的编码器的信息?
理想情况下,我希望能够在C#中实现这一点,但如果需要,我准备将我的ATL清除掉:)
有没有人遇到任何文档或能够提供有关如何处理此问题的任何指示?
更新:
我应该提到我迄今为止尝试过的事情,但无济于事:
寻找在ImageCodecInfo类中返回的GUID 以查看它是否是一个普通的COM接口(但它似乎不是),目的是查看已实现的接口,或者查看它是否只是一个注册表项.
步入Image.FromFile方法,发现它只是gdiplus.dll的包装器
大量的Google搜索,似乎提供了大量使用现有的搜索,并指定了自己的ImageEncoderParamerters; 还有一些人通过其他方式实现自己的 编解码器.
甚至在新闻中询问://microsoft.public.win32.programmer.gdi
Vojislav Sto.. 8
好的,这是我设法挖掘的一些信息.似乎推荐(通过Microsoft)做你想要的方法是为你的格式开发一个支持WIC的编解码器.Windows Imaging Component(WIC)API内置于Vista中,但也适用于XP和Win Server 2003,可以在.NET 3中使用,也可以单独下载.
然而,似乎还存在另一种扩展GDI +编解码器列表的方法,但这些水域更加模糊.如果您在十六进制编辑器中打开gdiplus.dll,您将找到对以下注册表项的引用:
Software\Microsoft\Imaging\Codecs
谷歌搜索该密钥将发送给MSDN文章,该文章讨论在Windows CE和Windows Mobile平台上注册您自己的图像编解码器.有趣的是,XP上的gdiplus.dll具有硬编码的所述注册表项.我没有检查它是否使用它,但我没有尝试开发自己的编解码器,无论是WIC还是GDI +.
我希望这些信息至少可以帮助您入门.
好的,这是我设法挖掘的一些信息.似乎推荐(通过Microsoft)做你想要的方法是为你的格式开发一个支持WIC的编解码器.Windows Imaging Component(WIC)API内置于Vista中,但也适用于XP和Win Server 2003,可以在.NET 3中使用,也可以单独下载.
然而,似乎还存在另一种扩展GDI +编解码器列表的方法,但这些水域更加模糊.如果您在十六进制编辑器中打开gdiplus.dll,您将找到对以下注册表项的引用:
Software\Microsoft\Imaging\Codecs
谷歌搜索该密钥将发送给MSDN文章,该文章讨论在Windows CE和Windows Mobile平台上注册您自己的图像编解码器.有趣的是,XP上的gdiplus.dll具有硬编码的所述注册表项.我没有检查它是否使用它,但我没有尝试开发自己的编解码器,无论是WIC还是GDI +.
我希望这些信息至少可以帮助您入门.