modified all filters range to 0.0f-1.0f

pull/527/head
Suneet Agrawal 6 years ago
parent 13429bcd9d
commit 230ba97702
  1. 7
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/ShaderEffectFactory.java
  2. 16
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/AutoFixEffect.java
  3. 18
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/BrightnessEffect.java
  4. 20
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/ContrastEffect.java
  5. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/DuotoneEffect.java
  6. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/FillLightEffect.java
  7. 17
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GammaEffect.java
  8. 6
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/GrainEffect.java
  9. 22
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SaturationEffect.java
  10. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/SharpnessEffect.java
  11. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TemperatureEffect.java
  12. 4
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/TintEffect.java
  13. 8
      cameraview/src/main/java/com/otaliastudios/cameraview/shadereffects/effects/VignetteEffect.java

@ -2,6 +2,7 @@ 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;
@ -29,6 +30,7 @@ public class ShaderEffectFactory {
public enum ShaderEffects {
NO_EFFECT,
AUTO_FIX_EFFECT,
BLACK_AND_WHITE_EFFECT,
BRIGHTNESS_EFFECT,
CONTRAST_EFFECT,
@ -54,6 +56,11 @@ public class ShaderEffectFactory {
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;

@ -7,20 +7,26 @@ import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect;
*/
public class AutoFixEffect extends BaseShaderEffect {
private float scale = 1.0f;
/**
* Initialize Effect
*/
public AutoFixEffect() {
}
private float scale;
public float getScale() {
return scale;
}
/**
* Initialize Effect
*
* @param scale Float, between 0 and 1. Zero means no adjustment, while 1
* indicates the maximum amount of adjustment.
*/
public AutoFixEffect(float scale) {
public void setScale(float scale) {
if (scale < 0.0f)
scale = 0.0f;
if (scale > 1.0f)
else if (scale > 1.0f)
scale = 1.0f;
this.scale = scale;

@ -17,15 +17,23 @@ public class BrightnessEffect extends BaseShaderEffect {
/**
* setBrightnessValue
*
* @param brightnessvalue Range should be between 1.0- 2.0 with 1.0 being normal.
* @param brightnessvalue Range should be between 0.0- 1.0 with 0.0 being normal.
*/
public void setBrightnessValue(float brightnessvalue) {
if (brightnessvalue < 1.0f)
if (brightnessvalue < 0.0f)
brightnessvalue = 0.0f;
else if (brightnessvalue > 1.0f)
brightnessvalue = 1.0f;
else if (brightnessvalue > 2.0f)
brightnessvalue = 2.0f;
this.brightnessValue = brightnessvalue;
//since the shader excepts a range of 1.0 - 2.0
// will add the 1.0 to every value
this.brightnessValue = 1.0f + brightnessvalue;
}
public float getBrightnessValue() {
//since the shader excepts a range of 1.0 - 2.0
//to keep it between 0.0f - 1.0f range, will subtract the 1.0 to every value
return brightnessValue - 1.0f;
}
@Override

@ -14,16 +14,24 @@ public class ContrastEffect extends BaseShaderEffect {
}
/**
*
* @param contrast Range should be between 1.0- 2.0 with 1.0 being normal.
*setContrast
* @param contrast Range should be between 0.0- 1.0 with 0.0 being normal.
*/
public void setContrast(float contrast){
if (contrast < 1.0f)
if (contrast < 0.0f)
contrast = 0.0f;
else if (contrast > 1.0f)
contrast = 1.0f;
else if (contrast > 2.0f)
contrast = 2.0f;
this.contrast = contrast;
//since the shader excepts a range of 1.0 - 2.0
//will add the 1.0 to every value
this.contrast = contrast + 1.0f;
}
public float getContrast() {
//since the shader excepts a range of 1.0 - 2.0
//to keep it between 0.0f - 1.0f range, will subtract the 1.0 to every value
return contrast - 1.0f;
}
@Override

@ -31,6 +31,14 @@ public class DuotoneEffect extends BaseShaderEffect {
this.mSecondColor = secondColor;
}
public int getFirstColor() {
return mFirstColor;
}
public int getSecondColor() {
return mSecondColor;
}
@Override
public String getFragmentShader() {
float first[] = {Color.red(mFirstColor) / 255f,

@ -6,7 +6,7 @@ import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect;
* Applies back-light filling to the preview.
*/
public class FillLightEffect extends BaseShaderEffect {
private float strength = 0f;
private float strength = 0.5f;
/**
* Initialize Effect
@ -17,7 +17,7 @@ public class FillLightEffect extends BaseShaderEffect {
/**
* setStrength
*
* @param strength Float, between 0 and 1. 0 means no change.
* @param strength Float, between 0.0 and 1.0 where 0.0 means no change.
*/
public void setStrength(float strength){
if (strength < 0.0f)
@ -28,6 +28,10 @@ public class FillLightEffect extends BaseShaderEffect {
this.strength = strength;
}
public float getStrength() {
return strength;
}
@Override
public String getFragmentShader() {
float fade_gamma = 0.3f;

@ -17,14 +17,23 @@ public class GammaEffect extends BaseShaderEffect {
/**
* setGammaValue
*
* @param gammaValue Range should be between 0.0 - 2.0 with 1.0 being normal.
* @param gammaValue Range should be between 0.0 - 1.0 with 0.5 being normal.
*/
public void setGammaValue(float gammaValue){
if (gammaValue < 0.0f)
gammaValue = 0.0f;
else if (gammaValue > 2.0f)
gammaValue = 2.0f;
this.gammaValue = gammaValue;
else if (gammaValue > 1.0f)
gammaValue = 1.0f;
//since the shader excepts a range of 0.0 - 2.0
//will multiply the 2.0 to every value
this.gammaValue = gammaValue * 2.0f;
}
public float getGammaValue() {
//since the shader excepts a range of 0.0 - 2.0
//to keep it between 0.0f - 1.0f range, will divide it with 2.0
return gammaValue / 2.0f;
}
@Override

@ -26,7 +26,7 @@ public class GrainEffect extends BaseShaderEffect {
/**
* setDistortionStrength
*
* @param strength Float, between 0 and 1. Zero means no distortion, while 1
* @param strength Float, between 0.0f and 1.0. Zero means no distortion, while 1
* indicates the maximum amount of adjustment.
*/
public void setDistortionStrength(float strength){
@ -37,6 +37,10 @@ public class GrainEffect extends BaseShaderEffect {
this.strength = strength;
}
public float getStrength() {
return strength;
}
/**
* Init all values that will be used by this shader.
*

@ -6,7 +6,7 @@ import com.otaliastudios.cameraview.shadereffects.BaseShaderEffect;
* Adjusts color saturation of preview.
*/
public class SaturationEffect extends BaseShaderEffect {
private float scale = 0f;
private float scale = 1.0f;
/**
* Initialize Effect
@ -15,15 +15,25 @@ public class SaturationEffect extends BaseShaderEffect {
}
/**
* @param value Float, between -1 and 1. 0 means no change, while -1 indicates
* @param value Float, between 0.0 and 1. 0 means no change, while 0.0 indicates
* full desaturated, i.e. grayscale.
* and 1.0 indicates full saturation
*/
public void setSaturationValue(float value){
if (value < -1.0f)
value = -1.0f;
public void setSaturationValue(float value) {
if (value < 0.0f)
value = 0.0f;
else if (value > 1.0f)
value = 1.0f;
this.scale = value;
//since the shader excepts a range of -1.0 to 1.0
//will multiply it by 2.0f and subtract 1.0 to every value
this.scale = (2.0f * value) - 1.0f;
}
public float getSaturationValue() {
//since the shader excepts a range of -1.0 to 1.0
//will add 1.0 to every value and divide it by 2.0f
return (scale + 1.0f) / 2.0f;
}
@Override

@ -30,6 +30,10 @@ public class SharpnessEffect extends BaseShaderEffect {
this.scale = value;
}
public float getSharpnessValue() {
return scale;
}
/**
* Init all values that will be used by this shader.
*

@ -26,6 +26,10 @@ public class TemperatureEffect extends BaseShaderEffect {
this.scale = scale;
}
public float getTemperatureScale() {
return scale;
}
@Override
public String getFragmentShader() {

@ -21,6 +21,10 @@ public class TintEffect extends BaseShaderEffect {
this.mTint = color;
}
public int getTintColor() {
return mTint;
}
@Override
public String getFragmentShader() {
float color_ratio[] = {0.21f, 0.71f, 0.07f};

@ -24,6 +24,10 @@ public class VignetteEffect extends BaseShaderEffect {
}
/**
* setVignetteEffectScale
* @param scale Float, between 0.0 and 1. 0
*/
public void setVignetteEffectScale(float scale){
if (scale < 0.0f)
scale = 0.0f;
@ -32,6 +36,10 @@ public class VignetteEffect extends BaseShaderEffect {
this.mScale = scale;
}
/**
* setVignetteEffectShade
* @param shade Float, between 0.0 and 1. 0
*/
public void setVignetteEffectShade(float shade){
if (shade < 0.0f)
shade = 0.0f;

Loading…
Cancel
Save