ラスタイメージに対してユーザ独自のフィルタ処理を施します。
[Visual Basic]
Public Function CustomFilter( _
        matrix(,) As Integer, div As Integer, level As Integer, _
        red As Boolean, green As Boolean, blue As Boolean _
) As Boolean
[C#]
public bool CustomFilter(
        int[,] matrix, int div, int level,
        bool red, bool green, bool blue
);

パラメータ

matrix
9×9行列の係数(9×9の二次元配列)
div
行列に対する除数
level
行列に対する加減(0~255 大きいほど明るい)
red
赤のプレーンに対する処理(false:しない、true:する)
green
緑のプレーンに対する処理(false:しない、true:する)
blue
青のプレーンに対する処理(false:しない、true:する)

戻り値

成功の場合は true、失敗の場合は false を返します。

解説

グレースケールのイメージを処理する場合は、red,green,blueで設定された値は無効となります。

処理対象となるイメージを Image プロパティもしくは Layer(LayerNumber).Image プロパティに設定します。
(8ビットグレースケール,16,24,32ビットイメージが対象で LayerNumber プロパティによって処理されるイメージが決まります)
イメージ全体に対して処理を行いたい場合は、SelectMode プロパティに EffectAll を設定します。
マスクハンドルを基に処理を行いたい場合は、SelectMode プロパティに EffectMask を設定し SourceMask プロパティに有効な値を設定します。
選択した多角形に対して処理を行いたい場合には、SelectMode プロパティに EffectPolygon を設定し Point プロパティに有効な値を設定します。
選択した円形に対して処理を行いたい場合には、SelectMode プロパティに EffectEllipse を設定し Rect プロパティに有効な値を設定します。
SelectModeプロパティが EffectPolygon と EffectEllipse の場合には Inside プロパティに値の設定が必要です。
成功した場合、処理後のイメージは DestinationAsImageKitImage プロパティが True の場合は LayerNumber プロパティの示すプロパティ(Image もしくは Layer(LayerNumber).Image)に、False の場合は DestinationImage プロパティに設定されます。

出力するピクセルの計算式は以下のようになります。


Piはピクセルの値、Ciはmatrixの係数の値を表します。
簡単なエンボスフィルタの例を示します。


div = 1、level = 128

上の表の値はmatrixの配列のデータを示します。(左から右へ、上から下へいく毎に添字が増える)

参照

ImageKit.Effect メンバ | Newtone.ImageKit.WPF.ImageKit