Java RGB Color Convert To rgbToHsl(float[] rgb)

Here you can find the source of rgbToHsl(float[] rgb)

Description

Converts an RGB color value to HSL.

License

LGPL

Parameter

Parameter Description
b The blue color value

Return

Array The HSL representation

Declaration

public static float[] rgbToHsl(float[] rgb) 

Method Source Code

//package com.java2s;
//License from project: LGPL 

public class Main {
    /**/*  ww w  .  ja  v a  2 s . co  m*/
     * Converts an RGB color value to HSL. Conversion formula
     * adapted from http://en.wikipedia.org/wiki/HSL_color_space.
     * Assumes r, g, and b are contained in the set [0, 255] and
     * returns h, s, and l in the set [0, 1].
     *
     * @param   Number  r       The red color value
     * @param   Number  g       The green color value
     * @param   Number  b       The blue color value
     * @return  Array           The HSL representation
     */
    public static float[] rgbToHsl(float[] rgb) {
        float r, g, b;
        r = rgb[0];
        g = rgb[1];
        b = rgb[2];
        float max = Math.max(r, Math.max(g, b));
        float min = Math.min(r, Math.min(g, b));
        float avg = (max + min) / 2;
        float h = avg, s = avg, l = avg;

        if (max == min) {
            h = s = 0; // achromatic
        } else {
            float d = max - min;
            s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
            if (max == r) {
                h = (g - b) / d + (g < b ? 6 : 0);
            } else if (max == g) {
                h = (b - r) / d + 2;
            } else if (max == b) {
                h = (r - g) / d + 4;
            }
            h /= 6;
        }

        return new float[] { h, s, l };
    }
}

Related

  1. RGBtoHSB(int r, int g, int b, float hsbvals[])
  2. RGBtoHSB(int r, int g, int b, float[] hsbvals)
  3. RGBtoHSB(int red, int green, int blue, float hsb[])
  4. rgbToHsl(byte red, byte green, byte blue)
  5. RgbToHsl(float r, float g, float b, float a)
  6. RGBtoHSL(int r, int g, int b)
  7. RGBtoHSL(int r, int g, int b)
  8. RGBtoHSL(int r, int g, int b, float[] hsl)
  9. rgbToHsl(int red, int green, int blue)