From 65f876a2bcad6fa989aba636748bec0e1f8d5db6 Mon Sep 17 00:00:00 2001 From: Suneet Agrawal Date: Mon, 29 Jul 2019 15:27:48 +0530 Subject: [PATCH] modified few filters --- .../otaliastudios/cameraview/CameraView.java | 5 +-- .../shadereffects/ShaderEffectFactory.java | 33 +++++++++++++++++++ .../shadereffects/effects/LamoishEffect.java | 6 ++-- .../effects/SaturationEffect.java | 17 +++++++--- .../effects/SharpnessEffect.java | 4 +-- .../effects/TemperatureEffect.java | 2 +- .../shadereffects/effects/VignetteEffect.java | 4 +-- 7 files changed, 56 insertions(+), 15 deletions(-) diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java index 9089cbea..bd36ef32 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/CameraView.java @@ -73,6 +73,7 @@ import com.otaliastudios.cameraview.preview.SurfaceCameraPreview; import com.otaliastudios.cameraview.preview.TextureCameraPreview; import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect; import com.otaliastudios.cameraview.shadereffects.ShaderEffectFactory; +import com.otaliastudios.cameraview.shadereffects.effects.SaturationEffect; import com.otaliastudios.cameraview.shadereffects.effects.SharpnessEffect; import com.otaliastudios.cameraview.shadereffects.effects.TemperatureEffect; import com.otaliastudios.cameraview.shadereffects.effects.TintEffect; @@ -583,7 +584,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { Log.d("Suneet Agrawal", "onTouchEvent " + event.getAction()); //BlackAndWhiteEffect effect = new BlackAndWhiteEffect(); - changeEffect(ShaderEffectFactory.ShaderEffects.SHARPNESS_EFFECT); + changeEffect(ShaderEffectFactory.ShaderEffects.INVERT_COLOR_EFFECT); } return true; @@ -2161,7 +2162,7 @@ public class CameraView extends FrameLayout implements LifecycleObserver { if (previewingSurfaceView != null) { BaseShaderEffect shaderEffect = ShaderEffectFactory.getShaderFromFactory(effect, previewingSurfaceView); - ((SharpnessEffect)shaderEffect).setSharpnessValue(1.0f); + //((SaturationEffect)shaderEffect).setSaturationValue(1f); ((GlCameraPreview) mCameraPreview).setShaderEffect(shaderEffect); } } else { diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/ShaderEffectFactory.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/ShaderEffectFactory.java index 32ce7d4e..73f7019c 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/ShaderEffectFactory.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/ShaderEffectFactory.java @@ -3,7 +3,12 @@ package com.otaliastudios.cameraview.shadereffects; import android.opengl.GLSurfaceView; import com.otaliastudios.cameraview.shadereffects.effects.BlackAndWhiteEffect; +import com.otaliastudios.cameraview.shadereffects.effects.InvertColorsEffect; +import com.otaliastudios.cameraview.shadereffects.effects.LamoishEffect; import com.otaliastudios.cameraview.shadereffects.effects.NoEffect; +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; @@ -12,7 +17,14 @@ import com.otaliastudios.cameraview.shadereffects.effects.VignetteEffect; public class ShaderEffectFactory { public enum ShaderEffects { + NO_EFFECT, + BLACK_AND_WHITE_EFFECT, + INVERT_COLOR_EFFECT, + LAMOISH_EFFECT, + POSTERIZE_EFFECT, + SATURATION_EFFECT, + SEPIA_EFFECT, SHARPNESS_EFFECT, TEMPERATURE_EFFECT, TINT_EFFECT, @@ -26,6 +38,26 @@ public class ShaderEffectFactory { shaderEffect = new BlackAndWhiteEffect(); break; + case INVERT_COLOR_EFFECT: + shaderEffect = new InvertColorsEffect(); + break; + + case LAMOISH_EFFECT: + shaderEffect = new LamoishEffect(glSurfaceView); + 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(glSurfaceView); break; @@ -43,6 +75,7 @@ public class ShaderEffectFactory { break; + case NO_EFFECT: default: shaderEffect = new NoEffect(); } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java index f3c9ce66..db1721da 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/LamoishEffect.java @@ -17,9 +17,11 @@ public class LamoishEffect extends BaseShaderEffect { /** * Initialize Effect + * + * @param glSurfaceView GLSurfaceView */ - public LamoishEffect() { - + public LamoishEffect(GLSurfaceView glSurfaceView) { + this.mGlSurfaceView = glSurfaceView; } /** diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SaturationEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SaturationEffect.java index a99174a8..d4c09d1f 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SaturationEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SaturationEffect.java @@ -10,13 +10,20 @@ public class SaturationEffect extends BaseShaderEffect { /** * Initialize Effect - * - * @param scale Float, between -1 and 1. 0 means no change, while -1 indicates - * full desaturation, i.e. grayscale. */ - public SaturationEffect(float scale) { + public SaturationEffect() { + } - this.scale = scale; + /** + * @param value Float, between -1 and 1. 0 means no change, while -1 indicates + * full desaturated, i.e. grayscale. + */ + public void setSaturationValue(float value){ + if (value < -1.0f) + value = -1.0f; + else if (value > 1.0f) + value = 1.0f; + this.scale = value; } @Override diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java index 448d155b..c7c32d7e 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java @@ -13,8 +13,6 @@ public class SharpnessEffect extends BaseShaderEffect { /** * Initialize Effect - * - * */ public SharpnessEffect(GLSurfaceView glSurfaceView) { this.mGlSurfaceView = glSurfaceView; @@ -26,7 +24,7 @@ public class SharpnessEffect extends BaseShaderEffect { public void setSharpnessValue(float value){ if (value < 0.0f) value = 0.0f; - if (value > 1.0f) + else if (value > 1.0f) value = 1.0f; this.scale = value; diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TemperatureEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TemperatureEffect.java index b6534270..effd13c5 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TemperatureEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TemperatureEffect.java @@ -21,7 +21,7 @@ public class TemperatureEffect extends BaseShaderEffect { public void setTemperatureScale(float scale){ if (scale < 0.0f) scale = 0.0f; - if (scale > 1.0f) + else if (scale > 1.0f) scale = 1.0f; this.scale = scale; } diff --git a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java index d7870108..f3c1fe84 100644 --- a/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java +++ b/cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java @@ -27,7 +27,7 @@ public class VignetteEffect extends BaseShaderEffect { public void setVignetteEffectScale(float scale){ if (scale < 0.0f) scale = 0.0f; - if (scale > 1.0f) + else if (scale > 1.0f) scale = 1.0f; this.mScale = scale; } @@ -35,7 +35,7 @@ public class VignetteEffect extends BaseShaderEffect { public void setVignetteEffectShade(float shade){ if (shade < 0.0f) shade = 0.0f; - if (shade > 1.0f) + else if (shade > 1.0f) shade = 1.0f; this.mShade = shade; }