SDXFrameWork 0.07 SDXFrameWork

- メインページ
- 関連ページ
- クラス

- 構成
- クラス階層
- 構成メンバ

全て クラス ネームスペース 関数 変数 列挙型 列挙型の値 ページ
Public メソッド | Static Public メソッド | すべてのメンバ一覧
クラス SDX::Filter

Imageにフィルター処理を行う関数群[DXLIB]. [詳細]

`#include <Filter.h>`

## Public メソッド
bool | Invert (Image *処理イメージ)
| 階調反転フィルタ. [詳細]
bool | Invert (ImagePack *処理イメージ郡)
bool | Level (Image *処理イメージ, int 処理前下限, int 処理前上限, int 処理後下限, int 処理後上限, double ガンマ値)
| レベル補正フィルタ. [詳細]
bool | Level (ImagePack *処理イメージ郡, int 処理前下限, int 処理前上限, int 処理後下限, int 処理後上限, double ガンマ値)
bool | TwoColor (Image *処理イメージ, int 閾値, int 暗色, int 暗色α値, int 明色, int 明色α値)
| ２階調フィルタ. [詳細]
bool | TwoColor (ImagePack *処理イメージ郡, int 閾値, int 暗色, int 暗色α値, int 明色, int 明色α値)
bool | GradientMap (Image *処理イメージ, const Image *入力イメージ, bool 反転フラグ)
| グラデーションマップフィルタ. [詳細]
bool | GradientMap (ImagePack *処理イメージ郡, const Image *入力イメージ, bool 反転フラグ)

## Static Public メソッド
static bool | Mono (Image *処理イメージ, int 青色差, int 赤色差)
| モノトーンフィルタ. [詳細]
static bool | Mono (ImagePack *処理イメージ郡, int 青色差, int 赤色差)
static bool | Gauss (Image *処理イメージ, int 使用ピクセル幅, double ぼかし強さ)
| ガウスフィルタ. [詳細]
static bool | Gauss (ImagePack *処理イメージ郡, int 使用ピクセル幅, double ぼかし強さ)
static bool | DownScale (Image *処理イメージ, int 分母)
| 縮小フィルタ. [詳細]
static bool | DownScale (ImagePack *処理イメージ郡, int 分母)
static bool | BrightClip (Image *処理イメージ, ClipType cmpType, int cmpParam, int clipFillColor, int clipFillAlpha)
| 明るさクリップフィルタ. [詳細]
static bool | BrightClip (ImagePack *処理イメージ郡, ClipType cmpType, int cmpParam, int clipFillColor, int clipFillAlpha)
static bool | Hsb (Image *処理イメージ, int 色相, double 彩度, double 明度)
| 色相・彩度・明度フィルタ. [詳細]
static bool | Hsb (ImagePack *処理イメージ郡, int 色相, double 彩度, double 明度)
static bool | MonoHsb (Image *処理イメージ, int 色相, double 彩度, double 明度)
| 色相・彩度・明度フィルタ. [詳細]
static bool | MonoHsb (ImagePack *処理イメージ郡, int 色相, double 彩度, double 明度)

## 説明

Imageにフィルター処理を行う関数群[DXLIB].

ImageやImagePackに対して画像編集ソフトにあるようなフィルター処理を施す。

//画像に処理を施して加工する[サンプル作成中]
bool SampleFilter()
{
using namespace SDX;
System::Initialise("sample", 600, 400);
Image image("image.bmp");
Filter::Hsb(&image, 60, 0, -0.5);
while (System::Update())
{
image.Draw(10, 10);
if (Input::key.Return.on) break;//Enterで終了
}
System::End();
return true;
}

## 関数

static bool SDX::Filter::Mono | ( | Image * | 処理イメージ,
|  | int | 青色差,
|  | int | 赤色差
| ) |  |
| static

モノトーンフィルタ.

    画像をモノトーン調に変化させる。\n

各ピクセルの色をRGB形式からYCbCr形式に変換して、その上ですべてのピクセルの輝度以外の成分を
引数の Cb Cr の値を置き換えた後、再びＲＧＢ形式に戻す。
値の調整が難しいが、似たような効果を得ることができる Filter::Hsb より負荷は低い。
赤色差と青色差は-255～255で指定する。

static bool SDX::Filter::Gauss | ( | Image * | 処理イメージ,
|  | int | 使用ピクセル幅,
|  | double | ぼかし強さ
| ) |  |
| static

ガウスフィルタ.

    画像にガウス関数を使用したぼかし効果を与える。\n

使用ピクセル幅は 8 か 16 か 32で指定。
ぼかし強さは 1 で約1ピクセル幅ぼかす。
ぼかしの限界は 使用ピクセル幅 で決まり、値が大きいほどぼかしの強さの限界が大きくなり、
それとともに処理負荷も大きくなる。
このフィルタは非常に負荷が大きいので、強いぼかしをかけたい場合は 使用ピクセル の値を 32 にして強いぼかしを
掛けるより、縮小フィルタ( DX_GRAPH_FILTER_DOWN_SCALE )で画像を縮小した後弱いぼかしを掛け、
その後 DrawExtend で元の大きさで描画する、という方法を採ったほうが処理負荷を小さく抑えることができます。

static bool SDX::Filter::DownScale | ( | Image * | 処理イメージ,
|  | int | 分母
| ) |  |
| static

縮小フィルタ.

分母は 2 か 4 か 8 を指定
画像を分母で指定した数で割って縮小する。
DrawExtend でも縮小描画することができるが、それよりも綺麗に縮小した画像を得ることができる。
主にFilter::Gaussの処理負荷を下げる目的で使用されることを想定している。

static bool SDX::Filter::BrightClip | ( | Image * | 処理イメージ,
|  | ClipType | cmpType,
|  | int | cmpParam,
|  | int | clipFillColor,
|  | int | clipFillAlpha
| ) |  |
| static

明るさクリップフィルタ.

画像の各ピクセルを輝度に応じて引数で渡す色で塗りつぶす。
クリップタイプがClipType::Lessの場合、クリップパラメータより輝度が小さいピクセル、
クリップタイプがClipType::Graterの場合、輝度が大きいピクセルをクリップ処理する。
クリップ判定されたピクセルは、クリップ色で塗られ、αチャンネルがある場合α値をクリップαにする。

static bool SDX::Filter::Hsb | ( | Image * | 処理イメージ,
|  | int | 色相,
|  | double | 彩度,
|  | double | 明度
| ) |  |
| static

色相・彩度・明度フィルタ.

画像の各ピクセルの、色相、彩度、明度を補正する。
色相は-180～180で指定し、相対的に変化させます
彩度 -1.0～で指定し、相対的に変化させます、-1でグレー、0で変化なし。
明度 -1.0～1.0で指定し、負の場合暗く、正の場合は明るくなる。

static bool SDX::Filter::MonoHsb | ( | Image * | 処理イメージ,
|  | int | 色相,
|  | double | 彩度,
|  | double | 明度
| ) |  |
| static

色相・彩度・明度フィルタ.

画像の各ピクセルの、色相、彩度、明度を補正する。
色相は0～360で指定、120が緑、240で青、360が赤になる。
絶対値で指定するので、モノトーン調の処理になる。
彩度と明度は、Filter::Hsbと同じ。

bool SDX::Filter::Invert | ( | Image * | 処理イメージ | ) |

階調反転フィルタ.

各ピクセルのRGB値を反転する。

bool SDX::Filter::Level | ( | Image * | 処理イメージ,
|  | int | 処理前下限,
|  | int | 処理前上限,
|  | int | 処理後下限,
|  | int | 処理後上限,
|  | double | ガンマ値
| ) |  |

レベル補正フィルタ.

画像にレベル補正を行い、コントラストを調整する。
処理前下限、0以上にすると暗くなります。
処理前上限、255以下にすると、明るくなります。
処理後下限、0以上にすると白っぽくなります。
処理後上限、255以下にすると黒に近くなります
ガンマ値は1以上にすると、明るくなり、1以下にすると暗くなります。

bool SDX::Filter::TwoColor | ( | Image * | 処理イメージ,
|  | int | 閾値,
|  | int | 暗色,
|  | int | 暗色α値,
|  | int | 明色,
|  | int | 明色α値
| ) |  |

２階調フィルタ.

各ピクセルの輝度が閾値より暗いか明るいかで各ピクセルを変換する

bool SDX::Filter::GradientMap | ( | Image * | 処理イメージ,
|  | const Image * | 入力イメージ,
|  | bool | 反転フラグ
| ) |  |

グラデーションマップフィルタ.

各ピクセルの輝度からグラデーションマップのＸ座標を算出し変換する。
輝度が0の場合はグラデーションマップの一番左上のピクセルの色が( x:0 y:0 座標のピクセル )、
輝度が255( 最大 )の場合、グラデーションマップの一番右上のピクセルの色が( x:255 y:0 座標のピクセル ) 出力結果の色になる。