2012-12-28 3 views
6

GDI +는 고성능이며 Windows XP에 포함되어있어서 GDI +를 좋아합니다. 그러나 해당 흐림 클래스 및 효과 클래스는 Windows Vista 이상에서만 제공되는 GDI + 1.1에서만 사용할 수 있습니다. Microsoft가 Windows XP에 대한 지원을 곧 중단 할 예정 임에도 불구하고 여전히 XP를 고수하는 사람들이 여전히 많습니다. 소비자 대상 소프트웨어를 만드는 경우 Windows XP를 지원해야합니다. 그러나 불행하게도 GDI + 1.1은 XP에서 재배포 할 수 없습니다.GDI +에 대한 대안

두 개의 오픈 소스 이미지 라이브러리를 사용해 보았습니다. 그러나 가우시안 블러 링 작업과 같은 성능 측면에서는 gdi +보다 상당히 느립니다.

누구나 GDI + XP 지원 대신 더 나은 대안을 추천 할 수 있습니까?

+0

:

고성능 가우스 블러 링에 대한 다른 옵션은, 예를 들어 (일부 GPU 가속 API, 예를 들어, OpenGL을/GLSL, 다이렉트 X, 또는 Direct2D의에서 쉐이더를 통해)은 GPU 기반의 흐림을 구현하는 것입니다 고성능 대안을 찾기는 어려울 것입니다. 아마도 _GDI + _를 고수해야하고 _GDI + 1.1_을 사용할 수없는 경우에만 흐림 효과를위한 대체 구현을 사용해야합니다. –

+0

IIRC - Vista에서는 Windows와 그 효과가 GPU에서 표면으로 렌더링됩니다. 어쨌든 소프트웨어에서 그런 종류의 연극을 복제하지 않을 것입니다. –

답변

2

GDI +는 이미 Legacy graphics에서 정렬됩니다.

대체 MS는 이제 Windows Presentation Foundation 또는 WPF를 사용합니다. 이것은 XP에서도 사용할 수 있으며 GDI +보다 성능이 좋습니다.

또는 우리가 예전에했던 것처럼 처음부터 코드를 작성하십시오 (모든 사람에게 해당되는 것은 아닙니다). 또는 대안으로 비트 맵을 잠금으로써 버퍼를 직접 조작하고 바이트 배열을 통해 컨볼 루션 또는 평균화 (흐리게 처리에 사용됨)를 추가 할 수 있습니다.

메모 : GDI +는 Matrix 클래스를 통해 회선을 지원합니다.

더 낮은 수준의 고성능 인 DirectX도 있습니다.

개인적으로 필자는 GDI +를 선호하지만 필요한 경우 버퍼 조작을 사용합니다. MS가 지원을 중단하더라도 XP 나 XP가 곧 사라질 까봐 걱정하지 않습니다.

+1

WPF는 GDI +보다 빠르거나 빠릅니다. 사실 WPF의 모든 효과는 GDI + 위에 계층화되어 있습니다. WPF는 CLR 오버 헤드를 추가합니다 (따라서 느림) –

+3

올바르지 않습니다. WPF는 DirectX를 기반으로합니다. https://en.wikipedia.org/wiki/Windows_Presentation_Foundation – K3N

+0

나는 고쳐졌다! –

3

GDI+ Blur은 성능에 따라 매력적이라고 ​​생각합니다.

GDI 이전 버전과 달리 GDI +는 하드웨어 가속 (CPU 기반 렌더링)이 아닙니다. XP, Vista, W7의 GDI/GDI +에 대한 자세한 내용은 this article을 참조하십시오.

Abdias Software에서 언급했듯이 WPF BlurEffect는 렌더링에 DirectX를 사용하기 때문에 좋은 솔루션입니다. http://callumhay.blogspot.com/2010/09/gaussian-blur-shader-glsl.html