Layer.grayFilter (グレイスケールフィルタ)

  1. 文法
  2. 詳細
  3. 引数
  4. 戻り値
  5. 関連項目

1. 文法

メンバ型
関数
メンバ所有者
global.Layer インスタンス
呼び出し
instance.grayFilter( x, y, w, h, type, size, lc, kernel )

2. 詳細

指定した矩形領域をフィルタ処理します。フィルタ処理する前にグレイスケール変換されます。なお、外周1ピクセルは処理されませんが、これは現バージョンでは仕様です。

元画像
ラプラシアンフィルタ(4方向)
ラプラシアンフィルタ(8方向)
ゾーベルフィルタ
プレヴィットフィルタ
ロバートフィルタ
エンボスフィルタ(左→右)

3. 引数

x (Integer)
矩形領域左上のX座標を指定します。
y (Integer)
矩形領域左上のY座標を指定します。
w (Integer)
矩形領域の幅を指定します。
h (Integer)
矩形領域の高さを指定します。
type (Integer)
フィルタの種類を指定します。指定できる値は以下のとおりです。
引数相関表
type size kernel 説明
tpftLaplacian4Dir 無効 無効 ラプラシアンフィルタ(4方向)
tpftLaplacian8Dir 無効 無効 ラプラシアンフィルタ(8方向)
tpftSobel 無効 無効 ゾーベルフィルタ
tpftPrewitt 無効 無効 プレヴィットフィルタ
tpftRobert 無効 無効 ロバートフィルタ
tpftGeneric 無効 有効 引数 kernel で指定したフィルタを使用
tpftGenericAvg 無効 有効 引数 kernel で指定したフィルタを使用(平均値算出付き)
tpftEmbossL2R 無効 無効 エンボスフィルタ(左→右)
tpftEmbossR2L 無効 無効 エンボスフィルタ(右→左)
tpftEmbossT2B 無効 無効 エンボスフィルタ(上→下)
tpftEmbossB2T 無効 無効 エンボスフィルタ(下→上)
tpftEmbossLT2RB 無効 無効 エンボスフィルタ(左上→右下)
tpftEmbossLB2RT 無効 無効 エンボスフィルタ(左下→右上)
tpftEmbossRT2LB 無効 無効 エンボスフィルタ(右上→左下)
tpftEmbossRB2LT 無効 無効 エンボスフィルタ(右下→左上)
size (Integer) [default: 3]
フィルタ領域サイズを指定します。3以上の奇数を指定できます。現バージョンでは、この引数に意味はありません(3に固定されます)。
lc (Integer) [default: tplcY709]
グレイスケール算出方法を指定します。
tplcNone
カラーコードの下位8ビットを使用
tplcY709
Y709輝度ベース(HDTV方式: luminance; 吉里吉里のLayer.doGrayScale()と同じ)
tplcY601
Y601輝度ベース(NTSC方式: luma)
tplcRGBAvg
RGB平均法
Y709輝度、Y601輝度についてはColor FAQ (Charles Poynton)を参照してください。
kernel (Object) [default: null]
フィルタカーネルを表す配列を指定します。TJS2 Arrayオブジェクトを指定してください。要素は全て整数型でなければなりません。要素数が、引数sizeで指定した値の自乗に満たない場合は、不足分が0で補完されます。sizeが3の場合の、各要素とピクセルの位置関係は下記のとおりです。
0 1 2
3 4 5
6 7 8
このカーネルの各要素値と、対応するピクセルのグレイスケール値を掛け合わせたものの総和が、中央のピクセルのグレイスケール値となります。 以下の例では、中央のピクセルのグレイスケール値は a*0 + b*(-1) + c*0 + d*(-1) + e*4 + f*(-1) + g*0 + h*(-1) + i*0です。
 0 -1  0
-1  4 -1
 0 -1  0
a b c
d e f
g h i

4. 戻り値

1ピクセル以上描画した場合はtrue。

5. 関連項目