parent
42ab7d3c30
commit
77464875be
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Attempts to auto-fix the preview based on histogram equalization. |
||||
*/ |
||||
public class AutoFixEffect extends BaseShaderEffect { |
||||
public class AutoFixEffect extends Filter { |
||||
|
||||
private float scale = 1.0f; |
||||
|
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Converts the preview into black and white colors |
||||
*/ |
||||
public class BlackAndWhiteEffect extends BaseShaderEffect { |
||||
public class BlackAndWhiteEffect extends Filter { |
||||
|
||||
|
||||
/** |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Adjusts the brightness of the preview. |
||||
*/ |
||||
public class BrightnessEffect extends BaseShaderEffect { |
||||
public class BrightnessEffect extends Filter { |
||||
private float brightnessValue = 2.0f; |
||||
|
||||
/** |
@ -1,10 +1,10 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
/** |
||||
* Adjusts the contrast of the preview. |
||||
*/ |
||||
public class ContrastEffect extends BaseShaderEffect { |
||||
public class ContrastEffect extends Filter { |
||||
private float contrast = 2.0f; |
||||
|
||||
/** |
@ -1,12 +1,12 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Applies a cross process effect on preview, in which the red and green channels |
||||
* are enhanced while the blue channel is restricted. |
||||
*/ |
||||
public class CrossProcessEffect extends BaseShaderEffect { |
||||
public class CrossProcessEffect extends Filter { |
||||
|
||||
/** |
||||
* Initialize Effect |
@ -1,12 +1,12 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
|
||||
/** |
||||
* This class is to implement any custom effect. |
||||
*/ |
||||
public class CustomEffect extends BaseShaderEffect { |
||||
public class CustomEffect extends Filter { |
||||
|
||||
/** |
||||
* Parameterized constructor with vertex and fragment shader as parameter |
@ -1,13 +1,13 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import android.graphics.Color; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Representation of preview using only two color tones. |
||||
*/ |
||||
public class DuotoneEffect extends BaseShaderEffect { |
||||
public class DuotoneEffect extends Filter { |
||||
// Default values
|
||||
private int mFirstColor = Color.MAGENTA; |
||||
private int mSecondColor = Color.YELLOW; |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Applies back-light filling to the preview. |
||||
*/ |
||||
public class FillLightEffect extends BaseShaderEffect { |
||||
public class FillLightEffect extends Filter { |
||||
private float strength = 0.5f; |
||||
|
||||
/** |
@ -0,0 +1,124 @@ |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
public enum Filters { |
||||
NO_EFFECT, |
||||
|
||||
AUTO_FIX_EFFECT, |
||||
BLACK_AND_WHITE_EFFECT, |
||||
BRIGHTNESS_EFFECT, |
||||
CONTRAST_EFFECT, |
||||
CROSS_PROCESS_EFFECT, |
||||
DOCUMENTARY_EFFECT, |
||||
DUO_TONE_COLOR_EFFECT, |
||||
FILL_LIGHT_EFFECT, |
||||
GAMMA_EFFECT, |
||||
GRAIN_EFFECT, |
||||
GREY_SCALE_EFFECT, |
||||
HUE_EFFECT, |
||||
INVERT_COLOR_EFFECT, |
||||
LAMOISH_EFFECT, |
||||
POSTERIZE_EFFECT, |
||||
SATURATION_EFFECT, |
||||
SEPIA_EFFECT, |
||||
SHARPNESS_EFFECT, |
||||
TEMPERATURE_EFFECT, |
||||
TINT_EFFECT, |
||||
VIGNETTE_EFFECT; |
||||
|
||||
public Filter newInstance(){ |
||||
Filter shaderEffect; |
||||
switch (this) { |
||||
|
||||
case AUTO_FIX_EFFECT: |
||||
shaderEffect = new AutoFixEffect(); |
||||
break; |
||||
|
||||
case BLACK_AND_WHITE_EFFECT: |
||||
shaderEffect = new BlackAndWhiteEffect(); |
||||
break; |
||||
|
||||
case BRIGHTNESS_EFFECT: |
||||
shaderEffect = new BrightnessEffect(); |
||||
break; |
||||
|
||||
case CONTRAST_EFFECT: |
||||
shaderEffect = new ContrastEffect(); |
||||
break; |
||||
|
||||
case CROSS_PROCESS_EFFECT: |
||||
shaderEffect = new CrossProcessEffect(); |
||||
break; |
||||
|
||||
case DOCUMENTARY_EFFECT: |
||||
shaderEffect = new DocumentaryEffect(); |
||||
break; |
||||
|
||||
case DUO_TONE_COLOR_EFFECT: |
||||
shaderEffect = new DuotoneEffect(); |
||||
break; |
||||
|
||||
case FILL_LIGHT_EFFECT: |
||||
shaderEffect = new FillLightEffect(); |
||||
break; |
||||
|
||||
case GAMMA_EFFECT: |
||||
shaderEffect = new GammaEffect(); |
||||
break; |
||||
|
||||
case GRAIN_EFFECT: |
||||
shaderEffect = new GrainEffect(); |
||||
break; |
||||
|
||||
case GREY_SCALE_EFFECT: |
||||
shaderEffect = new GreyScaleEffect(); |
||||
break; |
||||
|
||||
case HUE_EFFECT: |
||||
shaderEffect = new HueEffect(); |
||||
break; |
||||
|
||||
case INVERT_COLOR_EFFECT: |
||||
shaderEffect = new InvertColorsEffect(); |
||||
break; |
||||
|
||||
case LAMOISH_EFFECT: |
||||
shaderEffect = new LamoishEffect(); |
||||
break; |
||||
|
||||
case POSTERIZE_EFFECT: |
||||
shaderEffect = new PosterizeEffect(); |
||||
break; |
||||
|
||||
case SATURATION_EFFECT: |
||||
shaderEffect = new SaturationEffect(); |
||||
break; |
||||
|
||||
case SEPIA_EFFECT: |
||||
shaderEffect = new SepiaEffect(); |
||||
break; |
||||
|
||||
case SHARPNESS_EFFECT: |
||||
shaderEffect = new SharpnessEffect(); |
||||
break; |
||||
|
||||
case TEMPERATURE_EFFECT: |
||||
shaderEffect = new TemperatureEffect(); |
||||
break; |
||||
|
||||
case TINT_EFFECT: |
||||
shaderEffect = new TintEffect(); |
||||
break; |
||||
|
||||
case VIGNETTE_EFFECT: |
||||
shaderEffect = new VignetteEffect(); |
||||
break; |
||||
|
||||
|
||||
case NO_EFFECT: |
||||
default: |
||||
shaderEffect = new NoFilterEffect(); |
||||
} |
||||
|
||||
return shaderEffect; |
||||
} |
||||
} |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Apply Gamma Effect on preview being played |
||||
*/ |
||||
public class GammaEffect extends BaseShaderEffect { |
||||
public class GammaEffect extends Filter { |
||||
private float gammaValue = 2.0f; |
||||
|
||||
/** |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Converts preview to GreyScale. |
||||
*/ |
||||
public class GreyScaleEffect extends BaseShaderEffect { |
||||
public class GreyScaleEffect extends Filter { |
||||
/** |
||||
* Initialize Effect |
||||
*/ |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Apply Hue effect on the preview |
||||
*/ |
||||
public class HueEffect extends BaseShaderEffect { |
||||
public class HueEffect extends Filter { |
||||
float hueValue = 0.0f; |
||||
|
||||
/** |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Inverts the preview colors. This can also be known as negative Effect. |
||||
*/ |
||||
public class InvertColorsEffect extends BaseShaderEffect { |
||||
public class InvertColorsEffect extends Filter { |
||||
/** |
||||
* Initialize Effect |
||||
*/ |
@ -0,0 +1,11 @@ |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
public class NoFilterEffect extends Filter { |
||||
|
||||
@Override |
||||
public String getFragmentShader() { |
||||
return mFragmentShader; |
||||
} |
||||
} |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Applies Posterization effect to Preview. |
||||
*/ |
||||
public class PosterizeEffect extends BaseShaderEffect { |
||||
public class PosterizeEffect extends Filter { |
||||
/** |
||||
* Initialize Effect |
||||
*/ |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Adjusts color saturation of preview. |
||||
*/ |
||||
public class SaturationEffect extends BaseShaderEffect { |
||||
public class SaturationEffect extends Filter { |
||||
private float scale = 1.0f; |
||||
|
||||
/** |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Converts preview to Sepia tone. |
||||
*/ |
||||
public class SepiaEffect extends BaseShaderEffect { |
||||
public class SepiaEffect extends Filter { |
||||
/** |
||||
* Initialize Effect |
||||
*/ |
@ -1,12 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import android.opengl.GLSurfaceView; |
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Sharpens the preview. |
||||
*/ |
||||
public class SharpnessEffect extends BaseShaderEffect { |
||||
public class SharpnessEffect extends Filter { |
||||
private float scale = 0.5f; |
||||
|
||||
/** |
@ -1,11 +1,11 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
/** |
||||
* Adjusts color temperature of the preview. |
||||
*/ |
||||
public class TemperatureEffect extends BaseShaderEffect { |
||||
public class TemperatureEffect extends Filter { |
||||
private float scale = 0f; |
||||
|
||||
/** |
@ -1,14 +1,14 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import android.graphics.Color; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
|
||||
/** |
||||
* Tints the preview with specified color.. |
||||
*/ |
||||
public class TintEffect extends BaseShaderEffect { |
||||
public class TintEffect extends Filter { |
||||
private int mTint = 0xFFFF0000; |
||||
|
||||
/** |
@ -1,14 +1,12 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
package com.otaliastudios.cameraview.filters; |
||||
|
||||
import android.opengl.GLSurfaceView; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
import com.otaliastudios.cameraview.filters.Filter; |
||||
|
||||
|
||||
/** |
||||
* Applies lomo-camera style effect to your preview. |
||||
*/ |
||||
public class VignetteEffect extends BaseShaderEffect { |
||||
public class VignetteEffect extends Filter { |
||||
private float mScale = 0.85f; |
||||
private float mShade = 0.5f; |
||||
|
@ -1,152 +0,0 @@ |
||||
package com.otaliastudios.cameraview.shadereffects; |
||||
|
||||
import android.opengl.GLSurfaceView; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.effects.AutoFixEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.BlackAndWhiteEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.BrightnessEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.ContrastEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.CrossProcessEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.DocumentaryEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.DuotoneEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.FillLightEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.GammaEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.GrainEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.GreyScaleEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.HueEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.InvertColorsEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.LamoishEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.NoFilterEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.PosterizeEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.SaturationEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.SepiaEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.SharpnessEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.TemperatureEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.TintEffect; |
||||
import com.otaliastudios.cameraview.shadereffects.effects.VignetteEffect; |
||||
|
||||
public class ShaderEffectFactory { |
||||
|
||||
public enum ShaderEffects { |
||||
NO_EFFECT, |
||||
|
||||
AUTO_FIX_EFFECT, |
||||
BLACK_AND_WHITE_EFFECT, |
||||
BRIGHTNESS_EFFECT, |
||||
CONTRAST_EFFECT, |
||||
CROSS_PROCESS_EFFECT, |
||||
DOCUMENTARY_EFFECT, |
||||
DUO_TONE_COLOR_EFFECT, |
||||
FILL_LIGHT_EFFECT, |
||||
GAMMA_EFFECT, |
||||
GRAIN_EFFECT, |
||||
GREY_SCALE_EFFECT, |
||||
HUE_EFFECT, |
||||
INVERT_COLOR_EFFECT, |
||||
LAMOISH_EFFECT, |
||||
POSTERIZE_EFFECT, |
||||
SATURATION_EFFECT, |
||||
SEPIA_EFFECT, |
||||
SHARPNESS_EFFECT, |
||||
TEMPERATURE_EFFECT, |
||||
TINT_EFFECT, |
||||
VIGNETTE_EFFECT |
||||
} |
||||
|
||||
public static BaseShaderEffect getShaderFromFactory(ShaderEffects effect, GLSurfaceView glSurfaceView) { |
||||
BaseShaderEffect shaderEffect; |
||||
switch (effect) { |
||||
|
||||
case AUTO_FIX_EFFECT: |
||||
shaderEffect = new AutoFixEffect(); |
||||
break; |
||||
|
||||
case BLACK_AND_WHITE_EFFECT: |
||||
shaderEffect = new BlackAndWhiteEffect(); |
||||
break; |
||||
|
||||
case BRIGHTNESS_EFFECT: |
||||
shaderEffect = new BrightnessEffect(); |
||||
break; |
||||
|
||||
case CONTRAST_EFFECT: |
||||
shaderEffect = new ContrastEffect(); |
||||
break; |
||||
|
||||
case CROSS_PROCESS_EFFECT: |
||||
shaderEffect = new CrossProcessEffect(); |
||||
break; |
||||
|
||||
case DOCUMENTARY_EFFECT: |
||||
shaderEffect = new DocumentaryEffect(); |
||||
break; |
||||
|
||||
case DUO_TONE_COLOR_EFFECT: |
||||
shaderEffect = new DuotoneEffect(); |
||||
break; |
||||
|
||||
case FILL_LIGHT_EFFECT: |
||||
shaderEffect = new FillLightEffect(); |
||||
break; |
||||
|
||||
case GAMMA_EFFECT: |
||||
shaderEffect = new GammaEffect(); |
||||
break; |
||||
|
||||
case GRAIN_EFFECT: |
||||
shaderEffect = new GrainEffect(); |
||||
break; |
||||
|
||||
case GREY_SCALE_EFFECT: |
||||
shaderEffect = new GreyScaleEffect(); |
||||
break; |
||||
|
||||
case HUE_EFFECT: |
||||
shaderEffect = new HueEffect(); |
||||
break; |
||||
|
||||
case INVERT_COLOR_EFFECT: |
||||
shaderEffect = new InvertColorsEffect(); |
||||
break; |
||||
|
||||
case LAMOISH_EFFECT: |
||||
shaderEffect = new LamoishEffect(); |
||||
break; |
||||
|
||||
case POSTERIZE_EFFECT: |
||||
shaderEffect = new PosterizeEffect(); |
||||
break; |
||||
|
||||
case SATURATION_EFFECT: |
||||
shaderEffect = new SaturationEffect(); |
||||
break; |
||||
|
||||
case SEPIA_EFFECT: |
||||
shaderEffect = new SepiaEffect(); |
||||
break; |
||||
|
||||
case SHARPNESS_EFFECT: |
||||
shaderEffect = new SharpnessEffect(); |
||||
break; |
||||
|
||||
case TEMPERATURE_EFFECT: |
||||
shaderEffect = new TemperatureEffect(); |
||||
break; |
||||
|
||||
case TINT_EFFECT: |
||||
shaderEffect = new TintEffect(); |
||||
break; |
||||
|
||||
case VIGNETTE_EFFECT: |
||||
shaderEffect = new VignetteEffect(); |
||||
break; |
||||
|
||||
|
||||
case NO_EFFECT: |
||||
default: |
||||
shaderEffect = new NoFilterEffect(); |
||||
} |
||||
|
||||
return shaderEffect; |
||||
} |
||||
} |
@ -1,11 +0,0 @@ |
||||
package com.otaliastudios.cameraview.shadereffects.effects; |
||||
|
||||
import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; |
||||
|
||||
public class NoFilterEffect extends BaseShaderEffect { |
||||
|
||||
@Override |
||||
public String getFragmentShader() { |
||||
return mFragmentShader; |
||||
} |
||||
} |
Loading…
Reference in new issue