SDXFrameWork  0.13
SDXFrameWork
 All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Static Public Member Functions | List of all members
SDX::Filter Class Reference

Imageにフィルター処理を行う関数群[未実装]. More...

#include <Filter.h>

Static Public Member Functions

static bool Mono (Image *処理イメージ, int 青色差, int 赤色差)
 モノトーンフィルタ. More...
 
static bool Gauss (Image *処理イメージ, int 使用ピクセル幅, double ぼかし強さ)
 ガウスフィルタ. More...
 
static bool DownScale (Image *処理イメージ, int 分母)
 縮小フィルタ. More...
 
static bool BrightClip (Image *処理イメージ, bool isLess, int cmpParam, int clipFillColor, int clipFillAlpha)
 明るさクリップフィルタ. More...
 
static bool Hsb (Image *処理イメージ, int 色相, double 彩度, double 明度)
 色相・彩度・明度フィルタ. More...
 
static bool MonoHsb (Image *処理イメージ, int 色相, double 彩度, double 明度)
 色相・彩度・明度フィルタ. More...
 
static bool Invert (Image *処理イメージ)
 階調反転フィルタ. More...
 
static bool Level (Image *処理イメージ, int 処理前下限, int 処理前上限, int 処理後下限, int 処理後上限, double ガンマ値)
 レベル補正フィルタ. More...
 
static bool TwoColor (Image *処理イメージ, int 閾値, int 暗色, int 暗色α値, int 明色, int 明色α値)
 2階調フィルタ. More...
 
static bool GradientMap (Image *処理イメージ, const Image *入力イメージ, bool 反転フラグ)
 グラデーションマップフィルタ. More...
 

Detailed Description

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

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

//Copyright © 2014 SDXFramework
//[License]GNU Affero General Public License, version 3
//[Contact]http://sourceforge.jp/projects/dxframework/
//画像に処理を施して加工する[サンプル作成中]
bool SampleFilter()
{
return false;
}
Todo:
実装が面倒なので後回し

Member Function Documentation

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

モノトーンフィルタ.

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

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

ガウスフィルタ.

画像にガウス関数を使用したぼかし効果を与える。
使用ピクセル幅は 8 か 16 か 32で指定。
ぼかし強さは 1 で約1ピクセル幅ぼかす。

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

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

縮小フィルタ.

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

static bool SDX::Filter::BrightClip ( Image 処理イメージ,
bool  isLess,
int  cmpParam,
int  clipFillColor,
int  clipFillAlpha 
)
inlinestatic

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

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

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

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

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

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

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

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

static bool SDX::Filter::Invert ( Image 処理イメージ)
inlinestatic

階調反転フィルタ.

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

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

レベル補正フィルタ.

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

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

2階調フィルタ.

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

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

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

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