34
34
import jp .co .cyberagent .android .gpuimage .GPUImageSharpenFilter ;
35
35
import jp .co .cyberagent .android .gpuimage .GPUImageSobelEdgeDetection ;
36
36
import jp .co .cyberagent .android .gpuimage .GPUImageColorInvertFilter ;
37
+ import jp .co .cyberagent .android .gpuimage .GPUImageHueFilter ;
37
38
import android .app .AlertDialog ;
38
39
import android .content .Context ;
39
40
import android .content .DialogInterface ;
@@ -44,6 +45,7 @@ public static void showDialog(final Context context,
44
45
final FilterList filters = new FilterList ();
45
46
filters .addFilter ("Contrast" , FilterType .CONTRAST );
46
47
filters .addFilter ("Invert" , FilterType .INVERT );
48
+ filters .addFilter ("Hue" , FilterType .HUE );
47
49
filters .addFilter ("Gamma" , FilterType .GAMMA );
48
50
filters .addFilter ("Brightness" , FilterType .BRIGHTNESS );
49
51
filters .addFilter ("Sepia" , FilterType .SEPIA );
@@ -76,6 +78,8 @@ private static GPUImageFilter createFilterForType(final Context context, final F
76
78
return new GPUImageGammaFilter (2.0f );
77
79
case INVERT :
78
80
return new GPUImageColorInvertFilter ();
81
+ case HUE :
82
+ return new GPUImageHueFilter (90.0f );
79
83
case BRIGHTNESS :
80
84
return new GPUImageBrightnessFilter (1.5f );
81
85
case GRAYSCALE :
@@ -117,7 +121,7 @@ public interface OnGpuImageFilterChosenListener {
117
121
}
118
122
119
123
private enum FilterType {
120
- CONTRAST , GRAYSCALE , SHARPEN , SEPIA , SOBEL_EDGE_DETECTION , THREE_X_THREE_CONVOLUTION , FILTER_GROUP , EMBOSS , POSTERIZE , GAMMA , BRIGHTNESS , INVERT ,
124
+ CONTRAST , GRAYSCALE , SHARPEN , SEPIA , SOBEL_EDGE_DETECTION , THREE_X_THREE_CONVOLUTION , FILTER_GROUP , EMBOSS , POSTERIZE , GAMMA , BRIGHTNESS , INVERT , HUE ,
121
125
}
122
126
123
127
private static class FilterList {
@@ -150,6 +154,8 @@ public FilterAdjuster(final GPUImageFilter filter) {
150
154
adjuster = new GPU3x3TextureAdjuster ().filter (filter );
151
155
} else if (filter instanceof GPUImageEmbossFilter ) {
152
156
adjuster = new EmbossAdjuster ().filter (filter );
157
+ } else if (filter instanceof GPUImageHueFilter ) {
158
+ adjuster = new HueAdjuster ().filter (filter );
153
159
} else if (filter instanceof GPUImagePosterizeFilter ) {
154
160
adjuster = new PosterizeAdjuster ().filter (filter );
155
161
} else {
@@ -194,6 +200,13 @@ public void adjust(final int percentage) {
194
200
}
195
201
}
196
202
203
+ private class HueAdjuster extends Adjuster <GPUImageHueFilter > {
204
+ @ Override
205
+ public void adjust (final int percentage ) {
206
+ getFilter ().setHue (range (percentage , 0.0f , 360.0f ));
207
+ }
208
+ }
209
+
197
210
private class ContrastAdjuster extends Adjuster <GPUImageContrastFilter > {
198
211
@ Override
199
212
public void adjust (final int percentage ) {
0 commit comments