Example usage for android.graphics Color colorToHSV

List of usage examples for android.graphics Color colorToHSV

Introduction

In this page you can find the example usage for android.graphics Color colorToHSV.

Prototype

public static void colorToHSV(@ColorInt int color, @Size(3) float hsv[]) 

Source Link

Document

Convert the ARGB color to its HSV components.

Usage

From source file:Main.java

/**
 * Shifts the hue by the offset specified
 * @param color/*from   w w w .j a v  a 2 s . c  om*/
 * @param offset
 * @return shifted color
 */
public static int shiftColorHue(int color, float offset) {
    float[] colorShiftHSV = new float[3];
    Color.colorToHSV(color, colorShiftHSV);
    colorShiftHSV[0] = (colorShiftHSV[0] + offset) % 360;

    return Color.HSVToColor(colorShiftHSV);
}

From source file:Main.java

public static int colorDarker(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 0.8f; // value component
    return Color.HSVToColor(hsv);
}

From source file:Main.java

/**
 * Gets a darker color.//w w w  . j  av  a2 s . c  om
 * @param color the color to darken
 * @return the newly darkened color.
 */
public static int getDarkerColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 0.80f * hsv[2];
    if (hsv[2] > 1) {
        hsv[2] = 1.0f;
    } else if (hsv[2] < 0) {
        hsv[2] = 0.0f;
    }
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int generateRandomColour(long seed) {
    Random random = new Random(seed);
    int color = Color.argb(random.nextInt(), random.nextInt(), random.nextInt(), random.nextInt());

    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);

    //Adjust the saturation value, less than 1 is darker, greater than 1 is brighter
    hsv[2] *= 0.8;/* w w w  .j a  va2  s . com*/
    return Color.HSVToColor(hsv);
}

From source file:Main.java

/**
 * Gets a lighter color.//from   w w w.j  a v a 2s .com
 * @param color the color to lighten.
 * @return the newly lightened color.
 */
public static int getLigherColor(int color) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    float value = 1.0f - 0.6f * (1.0f - hsv[2]);
    if (value > 1) {
        hsv[2] = 1.0f;
    } else if (value < 0) {
        hsv[2] = 0.0f;
    } else {
        hsv[2] = value;
    }
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int interpolate(int a, int b, float x) {
    float[] hsvA = new float[3];
    float[] hsvB = new float[3];
    Color.colorToHSV(a, hsvA);
    Color.colorToHSV(b, hsvB);/*from  ww  w .  j av  a2s  .  c o  m*/
    for (int i = 0; i < 3; i++) {
        hsvB[i] = interpolate(hsvA[i], hsvB[i], x);
    }
    return Color.HSVToColor(hsvB);
}

From source file:Main.java

public static int[] colorSelectionButtonBackgroundGradient(int color) {
    int[] gradientColors = new int[2];
    float[] hsv = new float[3];

    // darken/*  ww  w  . java  2s. c o m*/
    Color.colorToHSV(color, hsv);
    hsv[2] *= DARKEN_LIGHTEN_FACTOR;
    gradientColors[0] = Color.HSVToColor(hsv);

    // lighten
    Color.colorToHSV(color, hsv);
    hsv[2] = 1 - DARKEN_LIGHTEN_FACTOR * (1 - hsv[2]);
    gradientColors[1] = Color.HSVToColor(hsv);

    return gradientColors;
}

From source file:Main.java

/**
 * Darken a color by the given percentage
 * @param color the color to darken/*from   www.ja  v a  2s  . c  om*/
 * @param percent the amount to darken the color by. In range 0-1
 * @return the darkened colour
 */
public static int darken(int color, float percent) {
    float[] hsv = new float[3];
    Color.colorToHSV(color, hsv);
    hsv[2] *= 1 - percent;
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static boolean isColorLight(int hex) {
    // convert hex string to int
    int rgb = Integer.parseInt(String.format("%d", hex), 16);

    int red = Color.red(hex);
    int green = Color.green(hex);
    int blue = Color.blue(hex);

    float[] hsb = new float[3];
    Color.colorToHSV(hex, hsb);
    //        float[] hsb = Color.RGBtoHSB(red, green, blue, null);

    float brightness = hsb[2];

    return hsb[2] > 0.5;
}

From source file:Main.java

private static int adjustColorBrightness(int argb, float factor) {
    final float[] hsv = new float[3];
    Color.colorToHSV(argb, hsv);

    hsv[2] = Math.min(hsv[2] * factor, 1f);

    return Color.HSVToColor(Color.alpha(argb), hsv);
}