8

引用System.Drawing.Imaging 命名空间的文档

Encoder 类使用户能够扩展 GDI+ 以支持任何图像格式。

然而,我找不到任何文档、示例或其他任何东西来解释我将如何实现我自己的自定义文件格式——大多数搜索返回大量关于传递 EncoderParameters 的信息,但没有关于实现我们自己的编码器的信息?

理想情况下,我希望能够在 C# 中实现这一点,但如果需要的话,我准备清理我的 ATL :)

有没有人遇到过任何文档或能够提供有关如何处理此问题的任何指示?

更新:
我可能应该提到到目前为止我尝试过的事情,但无济于事:

4

1 回答 1

9

好的,这是我设法挖掘的一些信息。似乎(Microsoft)推荐的方法是为您的格式开发支持 WIC 的编解码器。Windows 映像组件 (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+ 开发自己的编解码器。

我希望这些信息至少可以帮助您入门。

于 2009-01-28T00:36:11.373 回答