Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ColorMatrix colorMatrix = new ColorMatrix(saturationFilter(0.3f));
- ColorMatrixColorFilter matrix = new ColorMatrixColorFilter(colorMatrix);
- public static float[] saturationFilter(float x){
- float lumR = 0.3086f;
- float lumG = 0.6094f;
- float lumB = 0.0820f;
- float matrix[] = {lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
- lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
- lumR*(1-x)+x,lumG*(1-x),lumB*(1-x), 0, 0, 0,0,
- 0f, 0f, 0f, 1f, 0f,
- 0f ,0f, 0f, 0f ,1f};
- return matrix;
- }
- public static float[] saturationFilter(float saturation){
- float p_val = cleanValue(saturation,100);
- float x = 1+((p_val > 0) ? 3*p_val/100 : p_val/100);
- float lumR = 0.3086f;
- float lumG = 0.6094f;
- float lumB = 0.0820f;
- float matrix[] = {lumR*(1-x)+x, lumG*(1-x), lumB*(1-x), 0, 0,
- lumR*(1-x), lumG*(1-x)+x, lumB*(1-x), 0, 0,
- lumR*(1-x), lumG*(1-x), lumB*(1-x)+x, 0, 0,
- 0f, 0f, 0f, 1f, 0f,
- 0f ,0f, 0f, 0f ,1f};
- return matrix;
- }
- private static float cleanValue(float p_val, float p_limit){
- return Math.min(p_limit, Math.max(-p_limit, p_val));
- }
Add Comment
Please, Sign In to add comment