2012-12-28 29 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、DirectXの、またはDirect2Dの中にシェーダを介して)GPUベースのボケを実装することです高性能の代替案は見つけにくいでしょう。_GDI + _ _に固執する必要があり、_GDI + 1.1_が利用できない場合にのみ、ぼかし効果の代替実装を使用する必要があります。 –

+0

IIRC - Vistaでは、ウィンドウとそのエフェクトがGPUのサーフェスとしてレンダリングされます。とにかく、そのような種類のパフォーマンスをソフトウェアで複製するつもりはありません。 –

答えて

2

GDI +は既にLegacy graphicsでソートされています。

代替MSは現在、Windows Presentation Foundation(WPF)と略しています。これはXPでも利用可能で、GDI +よりも優れたパフォーマンスを備えています。

また、昔からやっていたように、ゼロからコードを書いてください。あるいは、ビットマップをロックしてバッファを直接操作し、バイト配列を使って畳み込みや平均化(ぼかしで使用)を追加することもできます。

メモ:GDI +は、Matrixクラスを通じて畳み込みをサポートしています。

さらに低レベルで高性能であるDirectXもあります。

個人的に私はGDI +が好きで、必要に応じてバッファ操作を使います。 MSがサポートを打ち切っても、いつでもすぐにこの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 +はハードウェアアクセラレーション(CPUベースのレンダリング)ではありません.Windows XP、Vista、W7のGDI/GDI +の詳細についてはthis articleを参照してください。

Abdias Softwareが言及しているように、WPF BlurEffectはレンダリングにDirectXを使用するため、良い解決策です。 http://callumhay.blogspot.com/2010/09/gaussian-blur-shader-glsl.html