Simplify Filters class

pull/535/head
Mattia Iavarone 6 years ago
parent facd26f11d
commit a37bf497c3
  1. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/DuotoneFilter.java
  2. 153
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/Filters.java
  3. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/filters/GrayscaleFilter.java
  4. 90
      demo/src/main/java/com/otaliastudios/cameraview/demo/CameraActivity.java

@ -19,14 +19,14 @@ public class DuotoneFilter extends Filter {
}
/**
* setDuoToneColors
* setDuotoneColors
*
* @param firstColor Integer, representing an ARGB color with 8 bits per channel.
* May be created using Color class.
* @param secondColor Integer, representing an ARGB color with 8 bits per channel.
* May be created using Color class.
*/
public void setDuoToneColors(int firstColor, int secondColor) {
public void setDuotoneColors(int firstColor, int secondColor) {
this.mFirstColor = firstColor;
this.mSecondColor = secondColor;
}

@ -1,124 +1,45 @@
package com.otaliastudios.cameraview.filters;
public enum Filters {
NO_FILTER,
import androidx.annotation.NonNull;
AUTO_FIX_FILTER,
BLACK_AND_WHITE_FILTER,
BRIGHTNESS_FILTER,
CONTRAST_FILTER,
CROSS_PROCESS_FILTER,
DOCUMENTARY_FILTER,
DUO_TONE_COLOR_FILTER,
FILL_LIGHT_FILTER,
GAMMA_FILTER,
GRAIN_FILTER,
GREY_SCALE_FILTER,
HUE_FILTER,
INVERT_COLOR_FILTER,
LAMOISH_FILTER,
POSTERIZE_FILTER,
SATURATION_FILTER,
SEPIA_FILTER,
SHARPNESS_FILTER,
TEMPERATURE_FILTER,
TINT_FILTER,
VIGNETTE_FILTER;
public enum Filters {
NONE(NoFilter.class),
AUTO_FIX(AutoFixFilter.class),
BLACK_AND_WHITE(BlackAndWhiteFilter.class),
BRIGHTNESS(BrightnessFilter.class),
CONTRAST(ContrastFilter.class),
CROSS_PROCESS(CrossProcessFilter.class),
DOCUMENTARY(DocumentaryFilter.class),
DUOTONE(DuotoneFilter.class),
FILL_LIGHT(FillLightFilter.class),
GAMMA(GammaFilter.class),
GRAIN(GrainFilter.class),
GRAYSCALE(GrayscaleFilter.class),
HUE(HueFilter.class),
INVERT_COLORS(InvertColorsFilter.class),
LAMOISH(LamoishFilter.class),
POSTERIZE(PosterizeFilter.class),
SATURATION(SaturationFilter.class),
SEPIA(SepiaFilter.class),
SHARPNESS(SharpnessFilter.class),
TEMPERATURE(TemperatureFilter.class),
TINT(TintFilter.class),
VIGNETTE(VignetteFilter.class);
private Class<? extends Filter> filterClass;
Filters(@NonNull Class<? extends Filter> filterClass) {
this.filterClass = filterClass;
}
@NonNull
public Filter newInstance() {
Filter shaderEffect;
switch (this) {
case AUTO_FIX_FILTER:
shaderEffect = new AutoFixFilter();
break;
case BLACK_AND_WHITE_FILTER:
shaderEffect = new BlackAndWhiteFilter();
break;
case BRIGHTNESS_FILTER:
shaderEffect = new BrightnessFilter();
break;
case CONTRAST_FILTER:
shaderEffect = new ContrastFilter();
break;
case CROSS_PROCESS_FILTER:
shaderEffect = new CrossProcessFilter();
break;
case DOCUMENTARY_FILTER:
shaderEffect = new DocumentaryFilter();
break;
case DUO_TONE_COLOR_FILTER:
shaderEffect = new DuotoneFilter();
break;
case FILL_LIGHT_FILTER:
shaderEffect = new FillLightFilter();
break;
case GAMMA_FILTER:
shaderEffect = new GammaFilter();
break;
case GRAIN_FILTER:
shaderEffect = new GrainFilter();
break;
case GREY_SCALE_FILTER:
shaderEffect = new GreyScaleFilter();
break;
case HUE_FILTER:
shaderEffect = new HueFilter();
break;
case INVERT_COLOR_FILTER:
shaderEffect = new InvertColorsFilter();
break;
case LAMOISH_FILTER:
shaderEffect = new LamoishFilter();
break;
case POSTERIZE_FILTER:
shaderEffect = new PosterizeFilter();
break;
case SATURATION_FILTER:
shaderEffect = new SaturationFilter();
break;
case SEPIA_FILTER:
shaderEffect = new SepiaFilter();
break;
case SHARPNESS_FILTER:
shaderEffect = new SharpnessFilter();
break;
case TEMPERATURE_FILTER:
shaderEffect = new TemperatureFilter();
break;
case TINT_FILTER:
shaderEffect = new TintFilter();
break;
case VIGNETTE_FILTER:
shaderEffect = new VignetteFilter();
break;
case NO_FILTER:
default:
shaderEffect = new NoFilter();
try {
return filterClass.newInstance();
} catch (IllegalAccessException e) {
return new NoFilter();
} catch (InstantiationException e) {
return new NoFilter();
}
return shaderEffect;
}
}

@ -5,11 +5,11 @@ import androidx.annotation.NonNull;
/**
* Converts preview to GreyScale.
*/
public class GreyScaleFilter extends Filter {
public class GrayscaleFilter extends Filter {
/**
* Initialize Effect
*/
public GreyScaleFilter() {
public GrayscaleFilter() {
}
@NonNull

@ -49,7 +49,7 @@ public class CameraActivity extends AppCompatActivity implements View.OnClickLis
private ViewGroup controlPanel;
private long mCaptureTime;
private Filters mCurrentEffect = NO_FILTER;
private Filters mCurrentEffect = NONE;
@Override
protected void onCreate(Bundle savedInstanceState) {
@ -328,73 +328,73 @@ public class CameraActivity extends AppCompatActivity implements View.OnClickLis
}
switch (mCurrentEffect){
case NO_FILTER:
mCurrentEffect = AUTO_FIX_FILTER;
case NONE:
mCurrentEffect = AUTO_FIX;
break;
case AUTO_FIX_FILTER:
mCurrentEffect = BLACK_AND_WHITE_FILTER;
case AUTO_FIX:
mCurrentEffect = BLACK_AND_WHITE;
break;
case BLACK_AND_WHITE_FILTER:
mCurrentEffect = BRIGHTNESS_FILTER;
case BLACK_AND_WHITE:
mCurrentEffect = BRIGHTNESS;
break;
case BRIGHTNESS_FILTER:
mCurrentEffect = CONTRAST_FILTER;
case BRIGHTNESS:
mCurrentEffect = CONTRAST;
break;
case CONTRAST_FILTER:
mCurrentEffect = CROSS_PROCESS_FILTER;
case CONTRAST:
mCurrentEffect = CROSS_PROCESS;
break;
case CROSS_PROCESS_FILTER:
mCurrentEffect = DOCUMENTARY_FILTER;
case CROSS_PROCESS:
mCurrentEffect = DOCUMENTARY;
break;
case DOCUMENTARY_FILTER:
mCurrentEffect = DUO_TONE_COLOR_FILTER;
case DOCUMENTARY:
mCurrentEffect = DUOTONE;
break;
case DUO_TONE_COLOR_FILTER:
mCurrentEffect = FILL_LIGHT_FILTER;
case DUOTONE:
mCurrentEffect = FILL_LIGHT;
break;
case FILL_LIGHT_FILTER:
mCurrentEffect = GAMMA_FILTER;
case FILL_LIGHT:
mCurrentEffect = GAMMA;
break;
case GAMMA_FILTER:
mCurrentEffect = GRAIN_FILTER;
case GAMMA:
mCurrentEffect = GRAIN;
break;
case GRAIN_FILTER:
mCurrentEffect = GREY_SCALE_FILTER;
case GRAIN:
mCurrentEffect = GRAYSCALE;
break;
case GREY_SCALE_FILTER:
mCurrentEffect = HUE_FILTER;
case GRAYSCALE:
mCurrentEffect = HUE;
break;
case HUE_FILTER:
mCurrentEffect = INVERT_COLOR_FILTER;
case HUE:
mCurrentEffect = INVERT_COLORS;
break;
case INVERT_COLOR_FILTER:
mCurrentEffect = LAMOISH_FILTER;
case INVERT_COLORS:
mCurrentEffect = LAMOISH;
break;
case LAMOISH_FILTER:
mCurrentEffect = POSTERIZE_FILTER;
case LAMOISH:
mCurrentEffect = POSTERIZE;
break;
case POSTERIZE_FILTER:
mCurrentEffect = SATURATION_FILTER;
case POSTERIZE:
mCurrentEffect = SATURATION;
break;
case SATURATION_FILTER:
mCurrentEffect = SEPIA_FILTER;
case SATURATION:
mCurrentEffect = SEPIA;
break;
case SEPIA_FILTER:
mCurrentEffect = SHARPNESS_FILTER;
case SEPIA:
mCurrentEffect = SHARPNESS;
break;
case SHARPNESS_FILTER:
mCurrentEffect = TEMPERATURE_FILTER;
case SHARPNESS:
mCurrentEffect = TEMPERATURE;
break;
case TEMPERATURE_FILTER:
mCurrentEffect = TINT_FILTER;
case TEMPERATURE:
mCurrentEffect = TINT;
break;
case TINT_FILTER:
mCurrentEffect = VIGNETTE_FILTER;
case TINT:
mCurrentEffect = VIGNETTE;
break;
case VIGNETTE_FILTER:
case VIGNETTE:
default:
mCurrentEffect = NO_FILTER;
mCurrentEffect = NONE;
break;
}

Loading…
Cancel
Save