【问题标题】:What's the relationship between WIC and GDI+?WIC和GDI+是什么关系?
【发布时间】:2009-11-26 15:24:18
【问题描述】:

我对 Windows 映像组件 (WIC) 和 GDI+ 之间的关系很模糊。我过去做过一些工作,表明,例如,WIC 产生了视觉上优越的 GIF 编码,但我很惊讶我没有看到更多的人使用它来处理图像而不是 GDI+。我知道它没有 GDI+ 的绘图操作,但对于编码/解码来说,它似乎更胜一筹。那么为什么我们看不到迁移呢?

【问题讨论】:

    标签: graphics image-processing gdi+ wic


    【解决方案1】:

    WIC 和 GDI+ 之间的关系(或者更确切地说,它们之间的区别)在于 WIC 是一个可扩展的成像编解码器框架,它允许实现该框架的应用程序通过提供的编解码器接收对新图像格式的支持。 GDI+是Windows的核心组件,支持线条、字体、渐变等绘制操作。

    虽然 GDI+ 原生支持多种常见图像格式,但 WIC 编解码器可以提供任何图像格式。

    【讨论】:

    • 所以除了一些本地编码/解码之外,WIC 并没有真正做任何事情,只是提供了一个框架来编写更多代码?对于这样一组优越的原生编解码器(与 GDI+ 相比),您会认为它们在 GDI+ 和 WIC 之间提供了更好的桥梁。
    • 我正在对此进行更多研究,似乎还有更多内容。 WIC 是 WPF 所做的大部分工作的基础(请参阅blogs.msdn.com/dwayneneed/archive/2008/06/20/…),实际上 WIC 似乎像 GDI+ 一样管理像素。
    【解决方案2】:

    我了解 GDI+ 使用 WIC 来执行某些任务。至少,在 Windows 7 中是这样。

    请考虑以下代码:

    image.Write(target, ImageFormat.Gif);
    

    当我在 Windows XP 下运行此代码时,它将使用 GDI+ Gif 编码器将图像写入 Gif。当我在 Windows 7 下运行相同的代码时,它将使用 WIC Gif 编码器。

    【讨论】:

    • 没有 Image.Write(...)。你的意思可能是 Image.Save(...)
    猜你喜欢
    • 1970-01-01
    • 2013-11-28
    • 1970-01-01
    • 2014-03-14
    • 2013-06-14
    • 2018-02-16
    • 2020-05-04
    • 2020-01-08
    • 2015-01-13
    相关资源
    最近更新 更多