Example usage for android.graphics Color RGBToHSV

List of usage examples for android.graphics Color RGBToHSV

Introduction

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

Prototype

public static void RGBToHSV(@IntRange(from = 0, to = 255) int red, @IntRange(from = 0, to = 255) int green,
        @IntRange(from = 0, to = 255) int blue, @Size(3) float hsv[]) 

Source Link

Document

Convert RGB components to HSV.

Usage

From source file:Main.java

public static int saturate(int color, float saturation) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[1] = saturation;/* w  ww .  j  ava  2s  . c  o  m*/
    return Color.HSVToColor(Color.alpha(color), hsv);
}

From source file:Main.java

public static int brighten(int color, float brightness) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[2] = brightness;/*from ww  w.  j av  a  2  s.c o m*/
    return Color.HSVToColor(Color.alpha(color), hsv);
}

From source file:Main.java

public static int shadeColor(int color, float shadeAmt) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[2] *= (1 - shadeAmt);/*from w w  w .j  a  v a  2s.c o m*/

    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int getComplementaryColor(int colorToInvert) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(colorToInvert), Color.green(colorToInvert), Color.blue(colorToInvert), hsv);
    hsv[0] = (hsv[0] + 180) % 360;/*from  w ww . java  2s  .  c  o m*/
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int getContrastVersionForColor(int color) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    if (hsv[2] < 0.5) {
        hsv[2] = 0.7f;/*from w  w w. j  av a 2  s . c o m*/
    } else {
        hsv[2] = 0.3f;
    }
    hsv[1] = hsv[1] * 0.2f;
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int saturateRelative(int color, float saturationOffset) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[1] += saturationOffset;//from w ww .  j  a v  a2 s . c om
    if (hsv[1] > 1.0f) {
        hsv[1] = 1.0f;
    } else if (hsv[1] < 0.0f) {
        hsv[1] = 0.0f;
    }
    return Color.HSVToColor(Color.alpha(color), hsv);
}

From source file:Main.java

/**
 * @param R Red in range 0..255//from www. j a  v a 2 s  . co m
 * @param G Green in range 0..255
 * @param B Blue in range 0..255
 * @return HSB values: H is 0..360 degrees / 360 (0..1), S is 0..1, B is 0..1
 */
public static double[] RGBtoHSB(int R, int G, int B) {
    double[] result = new double[3];
    float[] hsb = new float[3];
    Color.RGBToHSV(R, G, B, hsb);
    result[0] = hsb[0];
    result[1] = hsb[1];
    result[2] = hsb[2];
    return result;
}

From source file:Main.java

public static float colorToHSV(Context context, int colorResourceId) {

    int color = context.getResources().getColor(colorResourceId);

    int a = Color.alpha(color);
    int r = Color.red(color);
    int g = Color.green(color);
    int b = Color.blue(color);

    float[] hsv = new float[3];

    Color.RGBToHSV(r, g, b, hsv);

    return hsv[0];
}

From source file:Main.java

/**
 * Change light value of a color./*w ww  . ja va 2 s  .co m*/
 * <p>
 * <b>Warning:</b> Removes alpha channel. Only pass colors with alpha = {@code 0xFF}.
 * </p>
 *
 * @param color      The {@link Color} {@code int} to use.
 * @param multiplier The {@code float} multiplier to apply to the light value.
 * @return A modified {@link Color} {@code int}.
 */
public static int enlightColor(int color, float multiplier) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[2] = hsv[2] * multiplier;
    return Color.HSVToColor(hsv);
}

From source file:Main.java

public static int getComplementaryColor(int color) {
    float[] hsv = new float[3];
    Color.RGBToHSV(Color.red(color), Color.green(color), Color.blue(color), hsv);
    hsv[0] = (hsv[0] + 180) % 360;/*w w w.j a v  a2 s .  co  m*/
    return Color.HSVToColor(hsv);
}