public
final
class
ColorUtils
extends Object
java.lang.Object | |
↳ | android.support.v4.graphics.ColorUtils |
A set of color-related utility methods, building upon those available in Color
.
Public methods | |
---|---|
static
int
|
HSLToColor(float[] hsl)
Convert HSL (hue-saturation-lightness) components to a RGB color. |
static
int
|
LABToColor(double l, double a, double b)
Converts a color from CIE Lab to its RGB representation. |
static
void
|
LABToXYZ(double l, double a, double b, double[] outXyz)
Converts a color from CIE Lab to CIE XYZ representation. |
static
void
|
RGBToHSL(int r, int g, int b, float[] outHsl)
Convert RGB components to HSL (hue-saturation-lightness). |
static
void
|
RGBToLAB(int r, int g, int b, double[] outLab)
Convert RGB components to its CIE Lab representative components. |
static
void
|
RGBToXYZ(int r, int g, int b, double[] outXyz)
Convert RGB components to it's CIE XYZ representative components. |
static
int
|
XYZToColor(double x, double y, double z)
Converts a color from CIE XYZ to its RGB representation. |
static
void
|
XYZToLAB(double x, double y, double z, double[] outLab)
Converts a color from CIE XYZ to CIE Lab representation. |
static
int
|
blendARGB(int color1, int color2, float ratio)
Blend between two ARGB colors using the given ratio. |
static
void
|
blendHSL(float[] hsl1, float[] hsl2, float ratio, float[] outResult)
Blend between |
static
void
|
blendLAB(double[] lab1, double[] lab2, double ratio, double[] outResult)
Blend between two CIE-LAB colors using the given ratio. |
static
double
|
calculateContrast(int foreground, int background)
Returns the contrast ratio between |
static
double
|
calculateLuminance(int color)
Returns the luminance of a color as a float between |
static
int
|
calculateMinimumAlpha(int foreground, int background, float minContrastRatio)
Calculates the minimum alpha value which can be applied to |
static
void
|
colorToHSL(int color, float[] outHsl)
Convert the ARGB color to its HSL (hue-saturation-lightness) components. |
static
void
|
colorToLAB(int color, double[] outLab)
Convert the ARGB color to its CIE Lab representative components. |
static
void
|
colorToXYZ(int color, double[] outXyz)
Convert the ARGB color to it's CIE XYZ representative components. |
static
int
|
compositeColors(int foreground, int background)
Composite two potentially translucent colors over each other and returns the result. |
static
double
|
distanceEuclidean(double[] labX, double[] labY)
Returns the euclidean distance between two LAB colors. |
static
int
|
setAlphaComponent(int color, int alpha)
Set the alpha component of |
Inherited methods | |
---|---|
From
class
java.lang.Object
|
int HSLToColor (float[] hsl)
Convert HSL (hue-saturation-lightness) components to a RGB color.
Parameters | |
---|---|
hsl |
float :
3-element array which holds the input HSL components |
Returns | |
---|---|
int |
the resulting RGB color |
int LABToColor (double l, double a, double b)
Converts a color from CIE Lab to its RGB representation.
Parameters | |
---|---|
l |
double :
L component value [0...100] |
a |
double :
A component value [-128...127] |
b |
double :
B component value [-128...127] |
Returns | |
---|---|
int |
int containing the RGB representation |
void LABToXYZ (double l, double a, double b, double[] outXyz)
Converts a color from CIE Lab to CIE XYZ representation.
The resulting XYZ representation will use the D65 illuminant and the CIE 2° Standard Observer (1931).
Parameters | |
---|---|
l |
double :
L component value [0...100) |
a |
double :
A component value [-128...127) |
b |
double :
B component value [-128...127) |
outXyz |
double :
3-element array which holds the resulting XYZ components
|
void RGBToHSL (int r, int g, int b, float[] outHsl)
Convert RGB components to HSL (hue-saturation-lightness).
Parameters | |
---|---|
r |
int :
red component value [0..255] |
g |
int :
green component value [0..255] |
b |
int :
blue component value [0..255] |
outHsl |
float :
3-element array which holds the resulting HSL components
|
void RGBToLAB (int r, int g, int b, double[] outLab)
Convert RGB components to its CIE Lab representative components.
Parameters | |
---|---|
r |
int :
red component value [0..255] |
g |
int :
green component value [0..255] |
b |
int :
blue component value [0..255] |
outLab |
double :
3-element array which holds the resulting LAB components
|
void RGBToXYZ (int r, int g, int b, double[] outXyz)
Convert RGB components to it's CIE XYZ representative components.
The resulting XYZ representation will use the D65 illuminant and the CIE 2° Standard Observer (1931).
Parameters | |
---|---|
r |
int :
red component value [0..255] |
g |
int :
green component value [0..255] |
b |
int :
blue component value [0..255] |
outXyz |
double :
3-element array which holds the resulting XYZ components
|
int XYZToColor (double x, double y, double z)
Converts a color from CIE XYZ to its RGB representation.
This method expects the XYZ representation to use the D65 illuminant and the CIE 2° Standard Observer (1931).
Parameters | |
---|---|
x |
double :
X component value [0...95.047) |
y |
double :
Y component value [0...100) |
z |
double :
Z component value [0...108.883) |
Returns | |
---|---|
int |
int containing the RGB representation |
void XYZToLAB (double x, double y, double z, double[] outLab)
Converts a color from CIE XYZ to CIE Lab representation.
This method expects the XYZ representation to use the D65 illuminant and the CIE 2° Standard Observer (1931).
Parameters | |
---|---|
x |
double :
X component value [0...95.047) |
y |
double :
Y component value [0...100) |
z |
double :
Z component value [0...108.883) |
outLab |
double :
3-element array which holds the resulting Lab components
|
int blendARGB (int color1, int color2, float ratio)
Blend between two ARGB colors using the given ratio.
A blend ratio of 0.0 will result in color1
, 0.5 will give an even blend,
1.0 will result in color2
.
Parameters | |
---|---|
color1 |
int :
the first ARGB color |
color2 |
int :
the second ARGB color |
ratio |
float :
the blend ratio of color1 to color2
|
Returns | |
---|---|
int |
void blendHSL (float[] hsl1, float[] hsl2, float ratio, float[] outResult)
Blend between hsl1
and hsl2
using the given ratio. This will interpolate
the hue using the shortest angle.
A blend ratio of 0.0 will result in hsl1
, 0.5 will give an even blend,
1.0 will result in hsl2
.
Parameters | |
---|---|
hsl1 |
float :
3-element array which holds the first HSL color |
hsl2 |
float :
3-element array which holds the second HSL color |
ratio |
float :
the blend ratio of hsl1 to hsl2 |
outResult |
float :
3-element array which holds the resulting HSL components
|
void blendLAB (double[] lab1, double[] lab2, double ratio, double[] outResult)
Blend between two CIE-LAB colors using the given ratio.
A blend ratio of 0.0 will result in lab1
, 0.5 will give an even blend,
1.0 will result in lab2
.
Parameters | |
---|---|
lab1 |
double :
3-element array which holds the first LAB color |
lab2 |
double :
3-element array which holds the second LAB color |
ratio |
double :
the blend ratio of lab1 to lab2 |
outResult |
double :
3-element array which holds the resulting LAB components
|
double calculateContrast (int foreground, int background)
Returns the contrast ratio between foreground
and background
.
background
must be opaque.
Formula defined here.
Parameters | |
---|---|
foreground |
int
|
background |
int
|
Returns | |
---|---|
double |
double calculateLuminance (int color)
Returns the luminance of a color as a float between 0.0
and 1.0
.
Defined as the Y component in the XYZ representation of color
.
Parameters | |
---|---|
color |
int
|
Returns | |
---|---|
double |
int calculateMinimumAlpha (int foreground, int background, float minContrastRatio)
Calculates the minimum alpha value which can be applied to foreground
so that would
have a contrast value of at least minContrastRatio
when compared to
background
.
Parameters | |
---|---|
foreground |
int :
the foreground color |
background |
int :
the opaque background color |
minContrastRatio |
float :
the minimum contrast ratio |
Returns | |
---|---|
int |
the alpha value in the range 0-255, or -1 if no value could be calculated |
void colorToHSL (int color, float[] outHsl)
Convert the ARGB color to its HSL (hue-saturation-lightness) components.
Parameters | |
---|---|
color |
int :
the ARGB color to convert. The alpha component is ignored |
outHsl |
float :
3-element array which holds the resulting HSL components
|
void colorToLAB (int color, double[] outLab)
Convert the ARGB color to its CIE Lab representative components.
Parameters | |
---|---|
color |
int :
the ARGB color to convert. The alpha component is ignored |
outLab |
double :
3-element array which holds the resulting LAB components
|
void colorToXYZ (int color, double[] outXyz)
Convert the ARGB color to it's CIE XYZ representative components.
The resulting XYZ representation will use the D65 illuminant and the CIE 2° Standard Observer (1931).
Parameters | |
---|---|
color |
int :
the ARGB color to convert. The alpha component is ignored |
outXyz |
double :
3-element array which holds the resulting LAB components
|
int compositeColors (int foreground, int background)
Composite two potentially translucent colors over each other and returns the result.
Parameters | |
---|---|
foreground |
int
|
background |
int
|
Returns | |
---|---|
int |
double distanceEuclidean (double[] labX, double[] labY)
Returns the euclidean distance between two LAB colors.
Parameters | |
---|---|
labX |
double
|
labY |
double
|
Returns | |
---|---|
double |
int setAlphaComponent (int color, int alpha)
Set the alpha component of color
to be alpha
.
Parameters | |
---|---|
color |
int
|
alpha |
int
|
Returns | |
---|---|
int |