6
6
import project .android .imageprocessing .FastImageProcessingPipeline ;
7
7
import project .android .imageprocessing .FastImageProcessingView ;
8
8
import project .android .imageprocessing .filter .BasicFilter ;
9
- import project .android .imageprocessing .filter .colour .ColourInvertFilter ;
10
- import project .android .imageprocessing .filter .colour .ColourMatrixFilter ;
11
- import project .android .imageprocessing .filter .colour .GreyScaleFilter ;
12
- import project .android .imageprocessing .filter .colour .HueFilter ;
13
- import project .android .imageprocessing .filter .colour .BrightnessFilter ;
14
- import project .android .imageprocessing .filter .colour .MissEtikateFilter ;
15
- import project .android .imageprocessing .filter .colour .MonochromeFilter ;
16
- import project .android .imageprocessing .filter .colour .SoftEleganceFilter ;
17
- import project .android .imageprocessing .filter .colour .ToneCurveFilter ;
18
- import project .android .imageprocessing .filter .colour .HighlightShadowFilter ;
19
- import project .android .imageprocessing .filter .colour .ContrastFilter ;
20
- import project .android .imageprocessing .filter .colour .LookupFilter ;
21
- import project .android .imageprocessing .filter .colour .AmatorkaFilter ;
22
- import project .android .imageprocessing .filter .colour .ExposureFilter ;
23
- import project .android .imageprocessing .filter .colour .GammaFilter ;
24
- import project .android .imageprocessing .filter .colour .LevelsFilter ;
25
- import project .android .imageprocessing .filter .colour .SaturationFilter ;
26
- import project .android .imageprocessing .filter .colour .FalseColourFilter ;
27
- import project .android .imageprocessing .filter .colour .RGBFilter ;
28
- import project .android .imageprocessing .filter .colour .HazeFilter ;
29
- import project .android .imageprocessing .filter .colour .SepiaFilter ;
30
- import project .android .imageprocessing .filter .colour .OpacityFilter ;
31
- import project .android .imageprocessing .filter .colour .LuminanceThresholdFilter ;
32
- import project .android .imageprocessing .filter .colour .AdaptiveThresholdFilter ;
33
- import project .android .imageprocessing .filter .colour .ChromaKeyFilter ;
34
- import project .android .imageprocessing .filter .processing .*;
9
+ import project .android .imageprocessing .filter .colour .*;
35
10
import project .android .imageprocessing .filter .effect .*;
11
+ import project .android .imageprocessing .filter .processing .*;
36
12
import project .android .imageprocessing .input .CameraPreviewInput ;
37
13
import project .android .imageprocessing .input .GLTextureOutputRenderer ;
38
14
import project .android .imageprocessing .input .ImageResourceInput ;
39
15
import project .android .imageprocessing .output .ScreenEndpoint ;
40
- import android .os .Build ;
41
- import android .os .Bundle ;
42
16
import android .app .Activity ;
17
+ import android .content .Context ;
43
18
import android .graphics .Point ;
44
19
import android .graphics .PointF ;
20
+ import android .os .Build ;
21
+ import android .os .Bundle ;
45
22
import android .view .MotionEvent ;
46
23
import android .view .View ;
47
24
import android .view .Window ;
48
25
import android .view .WindowManager ;
26
+ import android .widget .Toast ;
49
27
50
28
public class ImageProcessingActivity extends Activity {
51
29
@@ -56,6 +34,7 @@ public class ImageProcessingActivity extends Activity {
56
34
private long touchTime ;
57
35
private FastImageProcessingPipeline pipeline ;
58
36
private ScreenEndpoint screen ;
37
+ private boolean usingCamera ;
59
38
60
39
private void addFilter (BasicFilter filter ) {
61
40
filters .add (filter );
@@ -70,18 +49,19 @@ protected void onCreate(Bundle savedInstanceState) {
70
49
pipeline = new FastImageProcessingPipeline ();
71
50
view .setPipeline (pipeline );
72
51
setContentView (view );
73
- /*if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
52
+ usingCamera = (Build .VERSION .SDK_INT >= Build .VERSION_CODES .ICE_CREAM_SANDWICH );
53
+ if (usingCamera ) {
74
54
input = new CameraPreviewInput (view );
75
- } else {*/
76
- input = new ImageResourceInput (view , this , R .drawable .tiger );
77
- // }
55
+ } else {
56
+ input = new ImageResourceInput (view , this , R .drawable .kukulkan );
57
+ }
78
58
filters = new ArrayList <BasicFilter >();
79
59
80
60
addFilter (new FlipFilter (FlipFilter .FLIP_HORIZONTAL ));
81
61
addFilter (new MosaicFilter (this , R .drawable .webcircles , new PointF (0.125f , 0.125f ), new PointF (0.025f , 0.025f ), 64 , true ));
82
62
addFilter (new CGAColourSpaceFilter ());
83
63
addFilter (new KuwaharaRadius3Filter ());
84
- addFilter (new KuwaharaFilter (4 ));
64
+ // addFilter(new KuwaharaFilter(8 )); //Will not work on devices that don't support for loop on shader
85
65
addFilter (new VignetteFilter (new PointF (0.5f , 0.5f ), new float [] {0.3f , 0.8f , 0.3f }, 0.3f , 0.75f ));
86
66
addFilter (new GlassSphereFilter (new PointF (0.43f , 0.5f ), 0.25f , 0.71f , 0.5f ));
87
67
addFilter (new SphereRefractionFilter (new PointF (0.43f , 0.5f ), 0.25f , 0.71f , 0.5f ));
@@ -157,7 +137,7 @@ protected void onCreate(Bundle savedInstanceState) {
157
137
addFilter (new LookupFilter (this , R .drawable .lookup_soft_elegance_1 ));
158
138
addFilter (new HighlightShadowFilter (0f , 1f ));
159
139
Point [] defaultCurve = new Point [] {new Point (128 ,128 ), new Point (64 ,0 ), new Point (192 ,255 )};
160
- addFilter (new ToneCurveFilter (defaultCurve ,defaultCurve ,defaultCurve ,defaultCurve )); //TODO fix on 4+
140
+ addFilter (new ToneCurveFilter (defaultCurve ,defaultCurve ,defaultCurve ,defaultCurve ));
161
141
addFilter (new HueFilter (3.14f /6f ));
162
142
addFilter (new BrightnessFilter (0.5f ));
163
143
addFilter (new ColourMatrixFilter (new float []{ 0.33f ,0f ,0f ,0f ,
@@ -185,8 +165,9 @@ protected void onCreate(Bundle savedInstanceState) {
185
165
filter .addTarget (screen );
186
166
}
187
167
188
- pipeline .setRootRenderer (input );
168
+ pipeline .addRootRenderer (input );
189
169
pipeline .startRendering ();
170
+ final Context context = this ;
190
171
view .setOnTouchListener (new View .OnTouchListener () {
191
172
public boolean onTouch (View v , MotionEvent e ) {
192
173
if (System .currentTimeMillis () - touchTime > 100 ) {
@@ -203,13 +184,31 @@ public boolean onTouch(View v, MotionEvent e) {
203
184
input .addTarget (screen );
204
185
} else {
205
186
input .addTarget (filters .get (curFilter -1 ));
187
+ Toast .makeText (context , filters .get (curFilter -1 ).getClass ().getSimpleName (), Toast .LENGTH_SHORT ).show ();
206
188
}
207
189
pipeline .startRendering ();
208
190
view .requestRender ();
209
191
}
210
192
return false ;
211
193
}
212
194
});
195
+ Toast .makeText (this , "Tap the screen to change filter." , Toast .LENGTH_LONG ).show ();
196
+ }
197
+
198
+ @ Override
199
+ public void onPause () {
200
+ super .onPause ();
201
+ if (usingCamera ) {
202
+ ((CameraPreviewInput ) input ).onPause ();
203
+ }
204
+ }
205
+
206
+ @ Override
207
+ public void onResume () {
208
+ super .onResume ();
209
+ if (usingCamera ) {
210
+ ((CameraPreviewInput ) input ).onResume ();
211
+ }
213
212
}
214
213
215
214
}
0 commit comments