@@ -104,6 +104,8 @@ public static void showDialog(final Context context,
104
104
105
105
filters .addFilter ("Color Balance" , FilterType .COLOR_BALANCE );
106
106
107
+ filters .addFilter ("Levels Min (Mid Adjust)" , FilterType .LEVELS_FILTER_MIN );
108
+
107
109
AlertDialog .Builder builder = new AlertDialog .Builder (context );
108
110
builder .setTitle ("Choose a filter" );
109
111
builder .setItems (filters .names .toArray (new String [filters .names .size ()]),
@@ -280,6 +282,10 @@ private static GPUImageFilter createFilterForType(final Context context, final F
280
282
return new GPUImageFalseColorFilter ();
281
283
case COLOR_BALANCE :
282
284
return new GPUImageColorBalanceFilter ();
285
+ case LEVELS_FILTER_MIN :
286
+ GPUImageLevelsFilter levelsFilter = new GPUImageLevelsFilter ();
287
+ levelsFilter .setMin (0.0f , 3.0f , 1.0f );
288
+ return levelsFilter ;
283
289
284
290
default :
285
291
throw new IllegalStateException ("No filter of that type!" );
@@ -308,7 +314,7 @@ private enum FilterType {
308
314
BLEND_DISSOLVE , BLEND_EXCLUSION , BLEND_SOURCE_OVER , BLEND_HARD_LIGHT , BLEND_LIGHTEN , BLEND_ADD , BLEND_DIVIDE , BLEND_MULTIPLY , BLEND_OVERLAY , BLEND_SCREEN , BLEND_ALPHA ,
309
315
BLEND_COLOR , BLEND_HUE , BLEND_SATURATION , BLEND_LUMINOSITY , BLEND_LINEAR_BURN , BLEND_SOFT_LIGHT , BLEND_SUBTRACT , BLEND_CHROMA_KEY , BLEND_NORMAL , LOOKUP_AMATORKA ,
310
316
GAUSSIAN_BLUR , CROSSHATCH , BOX_BLUR , CGA_COLORSPACE , DILATION , KUWAHARA , RGB_DILATION , SKETCH , TOON , SMOOTH_TOON , BULGE_DISTORTION , GLASS_SPHERE , HAZE , LAPLACIAN , NON_MAXIMUM_SUPPRESSION ,
311
- SPHERE_REFRACTION , SWIRL , WEAK_PIXEL_INCLUSION , FALSE_COLOR , COLOR_BALANCE
317
+ SPHERE_REFRACTION , SWIRL , WEAK_PIXEL_INCLUSION , FALSE_COLOR , COLOR_BALANCE , LEVELS_FILTER_MIN
312
318
}
313
319
314
320
private static class FilterList {
@@ -381,6 +387,8 @@ public FilterAdjuster(final GPUImageFilter filter) {
381
387
adjuster = new SwirlAdjuster ().filter (filter );
382
388
} else if (filter instanceof GPUImageColorBalanceFilter ) {
383
389
adjuster = new ColorBalanceAdjuster ().filter (filter );
390
+ } else if (filter instanceof GPUImageLevelsFilter ) {
391
+ adjuster = new LevelsMinMidAdjuster ().filter (filter );
384
392
} else {
385
393
adjuster = null ;
386
394
}
@@ -628,5 +636,12 @@ public void adjust(int percentage) {
628
636
range (percentage / 3 , 0.0f , 1.0f )});
629
637
}
630
638
}
639
+
640
+ private class LevelsMinMidAdjuster extends Adjuster <GPUImageLevelsFilter > {
641
+ @ Override
642
+ public void adjust (int percentage ) {
643
+ getFilter ().setMin (0.0f , range (percentage , 0.0f , 1.0f ) , 1.0f );
644
+ }
645
+ }
631
646
}
632
647
}
0 commit comments