@@ -106,6 +106,9 @@ public static void showDialog(final Context context,
106
106
107
107
filters .addFilter ("Levels Min (Mid Adjust)" , FilterType .LEVELS_FILTER_MIN );
108
108
109
+ filters . addFilter ("Bilateral Blur" , FilterType .BILATERAL_BLUR );
110
+
111
+
109
112
AlertDialog .Builder builder = new AlertDialog .Builder (context );
110
113
builder .setTitle ("Choose a filter" );
111
114
builder .setItems (filters .names .toArray (new String [filters .names .size ()]),
@@ -287,6 +290,9 @@ private static GPUImageFilter createFilterForType(final Context context, final F
287
290
levelsFilter .setMin (0.0f , 3.0f , 1.0f );
288
291
return levelsFilter ;
289
292
293
+ case BILATERAL_BLUR :
294
+ return new GPUImageBilateralFilter ();
295
+
290
296
default :
291
297
throw new IllegalStateException ("No filter of that type!" );
292
298
}
@@ -314,7 +320,7 @@ private enum FilterType {
314
320
BLEND_DISSOLVE , BLEND_EXCLUSION , BLEND_SOURCE_OVER , BLEND_HARD_LIGHT , BLEND_LIGHTEN , BLEND_ADD , BLEND_DIVIDE , BLEND_MULTIPLY , BLEND_OVERLAY , BLEND_SCREEN , BLEND_ALPHA ,
315
321
BLEND_COLOR , BLEND_HUE , BLEND_SATURATION , BLEND_LUMINOSITY , BLEND_LINEAR_BURN , BLEND_SOFT_LIGHT , BLEND_SUBTRACT , BLEND_CHROMA_KEY , BLEND_NORMAL , LOOKUP_AMATORKA ,
316
322
GAUSSIAN_BLUR , CROSSHATCH , BOX_BLUR , CGA_COLORSPACE , DILATION , KUWAHARA , RGB_DILATION , SKETCH , TOON , SMOOTH_TOON , BULGE_DISTORTION , GLASS_SPHERE , HAZE , LAPLACIAN , NON_MAXIMUM_SUPPRESSION ,
317
- SPHERE_REFRACTION , SWIRL , WEAK_PIXEL_INCLUSION , FALSE_COLOR , COLOR_BALANCE , LEVELS_FILTER_MIN
323
+ SPHERE_REFRACTION , SWIRL , WEAK_PIXEL_INCLUSION , FALSE_COLOR , COLOR_BALANCE , LEVELS_FILTER_MIN , BILATERAL_BLUR
318
324
}
319
325
320
326
private static class FilterList {
@@ -389,7 +395,11 @@ public FilterAdjuster(final GPUImageFilter filter) {
389
395
adjuster = new ColorBalanceAdjuster ().filter (filter );
390
396
} else if (filter instanceof GPUImageLevelsFilter ) {
391
397
adjuster = new LevelsMinMidAdjuster ().filter (filter );
392
- } else {
398
+ } else if (filter instanceof GPUImageBilateralFilter ) {
399
+ adjuster = new BilateralAdjuster ().filter (filter );
400
+ }
401
+ else {
402
+
393
403
adjuster = null ;
394
404
}
395
405
}
@@ -643,5 +653,13 @@ public void adjust(int percentage) {
643
653
getFilter ().setMin (0.0f , range (percentage , 0.0f , 1.0f ) , 1.0f );
644
654
}
645
655
}
656
+
657
+ private class BilateralAdjuster extends Adjuster <GPUImageBilateralFilter > {
658
+ @ Override
659
+ public void adjust (final int percentage ) {
660
+ getFilter ().setDistanceNormalizationFactor (range (percentage , 0.0f , 15.0f ));
661
+ }
662
+ }
663
+
646
664
}
647
665
}
0 commit comments