DXフレームワーク　リファレンス・マニュアル 0.01 DXフレームワークのリファレンスです。詳細は公式wiki

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

- ファイル一覧

Filter.h
1 #pragma once
2 #include<DxLib.h>
3 #include<Image.h>
4
5 namespace DXFW
6 {
21 class Filter
22 {
23 public:
30 static bool Mono( Image* 処理イメージ , int 青色差 , int 赤色差)
31 {
32 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_MONO ,青色差 , 赤色差);
33 }
34 static bool Mono( ImagePack *処理イメージ郡 , int 青色差 , int 赤色差)
35 {
36 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
37 {
38 Mono( 処理イメージ郡[0][i] , 青色差 , 赤色差 );
39 }
40 return true;
41 }
42
53 static bool Gauss( Image* 処理イメージ , int 使用ピクセル幅 , double ぼかし強さ)
54 {
55 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_GAUSS , 使用ピクセル幅 , int(ぼかし強さ*100) );
56 }
57 static bool Gauss( ImagePack *処理イメージ郡 , int 使用ピクセル幅 , double ぼかし強さ)
58 {
59 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
60 {
61 Gauss( 処理イメージ郡[0][i] , 使用ピクセル幅 , int(ぼかし強さ*100));
62 }
63 return true;
64 }
65
71 static bool DownScale( Image* 処理イメージ , int 分母)
72 {
73 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_DOWN_SCALE , 分母 );
74 }
75 static bool DownScale( ImagePack *処理イメージ郡 , int 分母)
76 {
77 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
78 {
79 DownScale( 処理イメージ郡[0][i] , 分母);
80 }
81 return true;
82 }
83
89 static bool BrightClip( Image* 処理イメージ , ClipType cmpType,int cmpParam , int clipFillColor , int clipFillAlpha)
90 {
91 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_BRIGHT_CLIP , cmpType, cmpParam , true , clipFillColor , clipFillAlpha);
92 }
93 static bool BrightClip( ImagePack *処理イメージ郡 , ClipType cmpType,int cmpParam , int clipFillColor , int clipFillAlpha)
94 {
95 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
96 {
97 BrightClip( 処理イメージ郡[0][i] , cmpType , cmpParam , clipFillColor , clipFillAlpha);
98 }
99 return true;
100 }
101
107 static bool Hsb( Image* 処理イメージ , int 色相 , double 彩度 , double 明度)
108 {
109 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_HSB , TRUE , 色相 , int(彩度*255) , int(明度*255) );
110 }
111 static bool Hsb( ImagePack *処理イメージ郡 , int 色相 , double 彩度 , double 明度)
112 {
113 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
114 {
115 Hsb( 処理イメージ郡[0][i] , 色相 , 彩度 , 明度);
116 }
117 return true;
118 }
119
125 static bool MonoHsb( Image* 処理イメージ , int 色相 , double 彩度 , double 明度)
126 {
127 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_HSB , FALSE , 色相 , int(彩度*255) , int(明度*255) );
128 }
129 static bool MonoHsb( ImagePack *処理イメージ郡 , int 色相 , double 彩度 , double 明度)
130 {
131 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
132 {
133 MonoHsb( 処理イメージ郡[0][i] , 色相 , 彩度 , 明度);
134 }
135 return true;
136 }
137
140 bool Invert( Image* 処理イメージ )
141 {
142 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_INVERT );
143 }
144 bool Invert( ImagePack *処理イメージ郡 )
145 {
146 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
147 {
148 Invert( 処理イメージ郡[0][i] );
149 }
150 return true;
151 }
152
160 bool Level( Image* 処理イメージ , int 処理前下限 , int 処理前上限 , int 処理後下限 , int 処理後上限, double ガンマ値 )
161 {
162 if( ガンマ値 < 0.01 ) ガンマ値 = 0.01;
163 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_LEVEL , 処理前下限 , 処理前上限 , int(ガンマ値*100) , 処理後下限 , 処理後上限);
164 }
165 bool Level( ImagePack *処理イメージ郡 , int 処理前下限 , int 処理前上限 , int 処理後下限 , int 処理後上限, double ガンマ値 )
166 {
167 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
168 {
169 Level( 処理イメージ郡[0][i] , 処理前下限 , 処理前上限 , 処理後下限 , 処理後上限, ガンマ値);
170 }
171 return true;
172 }
173
176 bool TwoColor( Image* 処理イメージ , int 閾値 , int 暗色 , int 暗色α値 , int 明色 , int 明色α値 )
177 {
178 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_TWO_COLOR , 閾値 , 暗色 , 暗色α値 , 明色 , 明色α値 );
179 }
180 bool TwoColor( ImagePack *処理イメージ郡 , int 閾値 , int 暗色 , int 暗色α値 , int 明色 , int 明色α値 )
181 {
182 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
183 {
184 TwoColor( 処理イメージ郡[0][i] , 閾値 , 暗色 , 暗色α値 , 明色 , 明色α値 );
185 }
186 return true;
187 }
188
194 bool GradientMap( Image* 処理イメージ , const Image *入力イメージ , bool 反転フラグ)
195 {
196 return !DxLib::GraphFilter( 処理イメージ->GetHandle() , DX_GRAPH_FILTER_GRADIENT_MAP , 入力イメージ->GetHandle(), 反転フラグ );
197 }
198 bool GradientMap( ImagePack *処理イメージ郡 , const Image *入力イメージ , bool 反転フラグ)
199 {
200 for( int i=0 ; i<処理イメージ郡->GetSize() ;i++ )
201 {
202 GradientMap( 処理イメージ郡[0][i] , 入力イメージ , 反転フラグ);
203 }
204 return true;
205 }
206 };
207
222 class FilterBlt
223 {
224 public:
226 static bool Mono(Image *image , const Image *origin , int 青色差 , int 赤色差)
227 {
228 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_MONO ,青色差 , 赤色差);
229 }
230 static bool Mono(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , int 青色差 , int 赤色差)
231 {
232 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_MONO ,青色差 , 赤色差);
233 }
234
236 static bool Gauss(Image *image , const Image *origin , int 使用ピクセル幅 , int ぼかし強さ)
237 {
238 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_GAUSS , 使用ピクセル幅 , ぼかし強さ);
239 }
240 static bool Gauss(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , int 使用ピクセル幅 , int ぼかし強さ)
241 {
242 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_GAUSS , 使用ピクセル幅 , ぼかし強さ);
243 }
244 /*
246 static bool DownScale(Image *image , const Image *origin , DivNumber num)
247 {
248 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_DOWN_SCALE , num );
249 }
250 static bool DownScale(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , DivNumber num)
251 {
252 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_DOWN_SCALE , num );
253 }
254
256 static bool BrightClip(Image *image , const Image *origin , CmpType cmpType,int cmpParam , bool isClipFill , int clipFillColor , int clipFillAlpha)
257 {
258 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_BRIGHT_CLIP , cmpType, cmpParam , isClipFill , clipFillColor , clipFillAlpha);
259 }
260 static bool BrightClip(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , CmpType cmpType,int cmpParam , bool isClipFill , int clipFillColor , int clipFillAlpha)
261 {
262 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_BRIGHT_CLIP , cmpType, cmpParam , isClipFill , clipFillColor , clipFillAlpha);
263 }
264
266 static bool Hsb(Image *image , const Image *origin , HueType hueType , int hue , int saturation , int bright)
267 {
268 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_HSB , hueType , hue , saturation , bright );
269 }
270 static bool Hsb(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , HueType hueType , int hue , int saturation , int bright)
271 {
272 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_HSB , hueType , hue , saturation , bright );
273 }
274 */
275
277 static bool Invert(Image *image , const Image *origin )
278 {
279 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_INVERT );
280 }
281 static bool Invert(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY)
282 {
283 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_INVERT );
284 }
285
287 static bool Level(Image *image , const Image *origin ,int min , int max , int gammma , int affterMin , int affterMax)
288 {
289 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_LEVEL , min , max , gammma , affterMin , affterMax);
290 }
291 static bool Level(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY, int min , int max , int gammma , int affterMin , int affterMax)
292 {
293 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_LEVEL , min , max , gammma , affterMin , affterMax);
294 }
295
297 static bool TwoColor(Image *image , const Image *origin , int threshold , int lowColor , int lowAlpha , int highColor , int highAlpha )
298 {
299 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_TWO_COLOR , threshold , lowColor , lowAlpha , highColor , highAlpha );
300 }
301 static bool TwoColor(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , int threshold , int lowColor , int lowAlpha , int highColor , int highAlpha )
302 {
303 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_TWO_COLOR , threshold , lowColor , lowAlpha , highColor , highAlpha );
304 }
305
307 static bool GradientMap(Image *image , const Image *origin , const Image *mapGraph , bool isReverse)
308 {
309 return !DxLib::GraphFilterBlt( origin->GetHandle() ,image->GetHandle() , DX_GRAPH_FILTER_GRADIENT_MAP , mapGraph->GetHandle() , isReverse );
310 }
311 static bool GradientMap(Image *image , const Image *origin , int srcX1, int srcY1, int srcX2, int srcY2, int destX, int destY , const Image *mapGraph , bool isReverse)
312 {
313 return !DxLib::GraphFilterRectBlt( origin->GetHandle() ,image->GetHandle() , srcX1, srcY1, srcX2, srcY2, destX, destY , DX_GRAPH_FILTER_GRADIENT_MAP , mapGraph->GetHandle() , isReverse );
314 }
315 };
316 }
DXFW::Filter
画像フィルタークラス
Definition: Filter.h:21
DXFW::Filter::Mono
static bool Mono(ImagePack *処理イメージ郡, int 青色差, int 赤色差)
Definition: Filter.h:34
DXFW::Filter::TwoColor
bool TwoColor(ImagePack *処理イメージ郡, int 閾値, int 暗色, int 暗色α値, int 明色, int 明色α値)
Definition: Filter.h:180
DXFW::ImagePack
複数のImageをまとめるクラス
Definition: Image.h:306
DXFW::Filter::MonoHsb
static bool MonoHsb(ImagePack *処理イメージ郡, int 色相, double 彩度, double 明度)
Definition: Filter.h:129
DXFW::Image::GetHandle
int GetHandle() const
ハンドルを取得
Definition: Image.h:157
DXFW::FilterBlt::TwoColor
static bool TwoColor(Image *image, const Image *origin, int threshold, int lowColor, int lowAlpha, int highColor, int highAlpha)
説明
Definition: Filter.h:297
DXFW::Filter::Hsb
static bool Hsb(Image *処理イメージ, int 色相, double 彩度, double 明度)
色相・彩度・明度フィルタ
Definition: Filter.h:107
DXFW::FilterBlt::Invert
static bool Invert(Image *image, const Image *origin)
説明
Definition: Filter.h:277
DXFW::ImagePack::GetSize
int GetSize() const
要素数を取得
Definition: Image.h:404
DXFW::FilterBlt::Mono
static bool Mono(Image *image, const Image *origin, int 青色差, int 赤色差)
説明
Definition: Filter.h:226
DXFW::Filter::BrightClip
static bool BrightClip(Image *処理イメージ, ClipType cmpType, int cmpParam, int clipFillColor, int clipFillAlpha)
明るさクリップフィルタ
Definition: Filter.h:89
DXFW::FilterBlt::GradientMap
static bool GradientMap(Image *image, const Image *origin, const Image *mapGraph, bool isReverse)
説明
Definition: Filter.h:307
DXFW::Filter::Invert
bool Invert(ImagePack *処理イメージ郡)
Definition: Filter.h:144
DXFW::Image
画像クラス。ロードしたファイルの描画等。
Definition: Image.h:51
DXFW::FilterBlt
フィルター処理したイメージを生成[修正中]
Definition: Filter.h:222
DXFW::Filter::Mono
static bool Mono(Image *処理イメージ, int 青色差, int 赤色差)
モノトーンフィルタ
Definition: Filter.h:30
DXFW::Filter::DownScale
static bool DownScale(Image *処理イメージ, int 分母)
縮小フィルタ
Definition: Filter.h:71
DXFW::Filter::Level
bool Level(ImagePack *処理イメージ郡, int 処理前下限, int 処理前上限, int 処理後下限, int 処理後上限, double ガンマ値)
Definition: Filter.h:165
DXFW::Filter::Hsb
static bool Hsb(ImagePack *処理イメージ郡, int 色相, double 彩度, double 明度)
Definition: Filter.h:111
DXFW::FilterBlt::Level
static bool Level(Image *image, const Image *origin, int min, int max, int gammma, int affterMin, int affterMax)
説明
Definition: Filter.h:287
DXFW::FilterBlt::Gauss
static bool Gauss(Image *image, const Image *origin, int 使用ピクセル幅, int ぼかし強さ)
説明
Definition: Filter.h:236
DXFW::ClipType
ClipType
説明
Definition: Image.h:32