替代GDI +

时间:2012-12-28 21:39:09

标签: gdi+

我喜欢GDI +因为它的高性能而且它包含在Windows XP中。但是,它的模糊类和效果类仅适用于GDI + 1.1,后者仅适用于Windows Vista或更高版本。尽管微软计划很快放弃对Windows XP的支持,但仍然有很大一部分人仍然坚持使用XP。如果您制作任何面向消费者的软件,则必须支持Windows XP。但不幸的是,GDI + 1.1在XP下不可再分发。

我尝试了几个开源图像库。然而,当谈到性能时,例如高斯模糊操作,它们明显慢于gdi +。

有人可以推荐更好的替代GDI +并支持XP吗?

2 个答案:

答案 0 :(得分:3)

我很惊讶你发现GDI+ Blur根据它的表现而具有吸引力。

请注意,与GDI前身不同,GDI +不是硬件加速(基于CPU的渲染) - 有关XP,Vista,W7上GDI / GDI +的一些细节,请参阅this article,包括比较两者的一些基本渲染基准

正如Abdias Software所提到的,WPF BlurEffect是一个很好的解决方案,因为它使用DirectX进行渲染。

高性能高斯模糊的另一个选择是实现基于GPU的模糊(通过某些GPU加速API中的着色器,例如OpenGL / GLSL,DirectX或Direct2D)例如:http://callumhay.blogspot.com/2010/09/gaussian-blur-shader-glsl.html

答案 1 :(得分:2)

GDI +已经排在Legacy graphics下。

替代MS现在拥抱的是Windows Presentation Foundation,简称WPF。这也可以在XP下使用,并且具有比GDI +更好的性能。

或者像过去那样,从头开始编写代码(尽管不是每个人都这样)。或者作为替代方案,您可以通过锁定位图直接操作缓冲区并通过字节数组来添加卷积或平均值(如模糊中所使用的那样)。

作为一个注释:GDI +通过其Matrix类支持卷积。

还有DirectX更低级别且效果更好。

我个人喜欢/喜欢GDI +并在需要时使用缓冲区操作。我并不担心即使MS放弃支持,这个也不会很快就会消失。