GDIPlus1.1を使用したアンシャープマスキング処理
上左側は、GDIPlus1.1のガウシアンボケ処理を利用したアンシャープマスキングで、右側は、全てをGDIPlus1.1で行った画像の例です。
GDIPlus1.1は、Vista以降で利用可能で、http://www.bilsen.com/gdiplus/index.shtml から、GDI+
1.1 をダウンロードして使用します。
上左は、GDI+
1.1のガウシアンマスクを利用して、ボカシ画像を作成し、差分画像データーをつくり、アンシャープ処理を行っています。
アンシャープマスキングの方法、手順は、アンシャープその1を、参照して下さい。
ガウシアンマスクは、マスクの半径の指定と、エッジの拡張をするかどうかの指定が出来る様になっていますが、エッジの拡張の有無は、画像に殆ど影響を与えないようです。
GDI+ 1.1を利用すれば、ボカシ画像の作成が簡単に出来、面倒なガウシアンマスクの作成と、ボカシ画像生成ルーチンの作成が不要となります。
アンシャープ処理を行うファイル名を指定し、処理したものを出力するキャンバスを指定すれば、アンシャープ処理まで全て、GDI+ 1.1で行うことも出来ます。
この時の指定するパラメーターは、マスクの半径と、アンシャープ適応量(%)だけです。
ダウンロードしたGDI+
1.1を利用するためには、Delphiのプロジェクトのオプション 条件定義に GDIP_0110を追加する必要があります。
ターゲットを全ての構成として、条件定義に、GDIP_0110を追加します。(中央のアンダーバーも文字の一部です、スペースを表すものではではありません。)
ダウンロードしたGDI+ 1.1のフォルダー名は、GdiPlus1.2となっているようですが、単にフォルダー名だけです。
解凍した、Libホルダーの中の全てのファイルを、パスの通ったフォルダーに置けば、GDI+ 1.1が利用可能となります。
Uses
に、GdiPlusを追加して、準備完了です。
Demoホルダーの、GdiPlus11.dproj を実行すれば、プログラム例が表示されるので、それをコピーし修正して使用すれば、簡単に利用出来ます。
コンパイル時、次のヒントが表示された場合は、プロジェクトのオプション アプリケーション ランタイム テーマ を未指定にすれば、表示されなくなります。
[dcc32 ヒント] H2161 Warning: Duplicate resource: Type 24 (user-defined), ID
1; File D:\GDiPlus\GDiPlus_Unsharp.res resource kept; file
D:\GDiPlus\GdiPlus11.res resource discarded.
プロジェクトのリソースファイルと、GdiPlusのリソースファイルの両方で、マニフェストを指定した為に、GdiPlusのリソースファイルが破棄されたヒント表示です。
ここでダウンロード出来るファイルには、GDI+ 1.1は含まれていません、http://www.bilsen.com/gdiplus/index.shtml からダウンロードして下さい。