belongs to Maven artifact com.android.support:support-compat:28.0.0-alpha1
ColorUtils
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
.
Summary
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 its 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 its 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
|
Public methods
HSLToColor
int HSLToColor (float[] hsl)
Convert HSL (hue-saturation-lightness) components to a RGB color.
- hsl[0] is Hue [0 .. 360)
- hsl[1] is Saturation [0...1]
- hsl[2] is Lightness [0...1]
Parameters | |
---|---|
hsl |
float : 3-element array which holds the input HSL components |
Returns | |
---|---|
int |
the resulting RGB color |
LABToColor
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]Value is between 0.0 and 100.0 inclusive. |
a |
double : A component value [-128...127]Value is between -128.0 and 127.0 inclusive. |
b |
double : B component value [-128...127]Value is between -128.0 and 127.0 inclusive. |
Returns | |
---|---|
int |
int containing the RGB representation |
LABToXYZ
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).
- outXyz[0] is X [0 ...95.047)
- outXyz[1] is Y [0...100)
- outXyz[2] is Z [0...108.883)
Parameters | |
---|---|
l |
double : L component value [0...100)Value is between 0.0 and 100.0 inclusive. |
a |
double : A component value [-128...127)Value is between -128.0 and 127.0 inclusive. |
b |
double : B component value [-128...127)Value is between -128.0 and 127.0 inclusive. |
outXyz |
double : 3-element array which holds the resulting XYZ components
|
RGBToHSL
void RGBToHSL (int r, int g, int b, float[] outHsl)
Convert RGB components to HSL (hue-saturation-lightness).
- outHsl[0] is Hue [0 .. 360)
- outHsl[1] is Saturation [0...1]
- outHsl[2] is Lightness [0...1]
Parameters | |
---|---|
r |
int : red component value [0..255]Value is 255 or less. |
g |
int : green component value [0..255]Value is 255 or less. |
b |
int : blue component value [0..255]Value is 255 or less. |
outHsl |
float : 3-element array which holds the resulting HSL components
|
RGBToLAB
void RGBToLAB (int r, int g, int b, double[] outLab)
Convert RGB components to its CIE Lab representative components.
- outLab[0] is L [0 ...1)
- outLab[1] is a [-128...127)
- outLab[2] is b [-128...127)
Parameters | |
---|---|
r |
int : red component value [0..255]Value is 255 or less. |
g |
int : green component value [0..255]Value is 255 or less. |
b |
int : blue component value [0..255]Value is 255 or less. |
outLab |
double : 3-element array which holds the resulting LAB components
|
RGBToXYZ
void RGBToXYZ (int r, int g, int b, double[] outXyz)
Convert RGB components to its CIE XYZ representative components.
The resulting XYZ representation will use the D65 illuminant and the CIE 2° Standard Observer (1931).
- outXyz[0] is X [0 ...95.047)
- outXyz[1] is Y [0...100)
- outXyz[2] is Z [0...108.883)
Parameters | |
---|---|
r |
int : red component value [0..255]Value is 255 or less. |
g |
int : green component value [0..255]Value is 255 or less. |
b |
int : blue component value [0..255]Value is 255 or less. |
outXyz |
double : 3-element array which holds the resulting XYZ components
|
XYZToColor
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)Value is between 0.0 and 95.047 inclusive. |
y |
double : Y component value [0...100)Value is between 0.0 and 100.0 inclusive. |
z |
double : Z component value [0...108.883)Value is between 0.0 and 108.883 inclusive. |
Returns | |
---|---|
int |
int containing the RGB representation |
XYZToLAB
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).
- outLab[0] is L [0 ...1)
- outLab[1] is a [-128...127)
- outLab[2] is b [-128...127)
Parameters | |
---|---|
x |
double : X component value [0...95.047)Value is between 0.0 and 95.047 inclusive. |
y |
double : Y component value [0...100)Value is between 0.0 and 100.0 inclusive. |
z |
double : Z component value [0...108.883)Value is between 0.0 and 108.883 inclusive. |
outLab |
double : 3-element array which holds the resulting Lab components
|
blendARGB
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
Value is between 0.0 and 1.0 inclusive. |
Returns | |
---|---|
int |
blendHSL
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 Value is between 0.0 and 1.0 inclusive. |
outResult |
float : 3-element array which holds the resulting HSL components
|
blendLAB
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 Value is between 0.0 and 1.0 inclusive. |
outResult |
double : 3-element array which holds the resulting LAB components
|
calculateContrast
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 |
calculateLuminance
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 |
Value is between 0.0 and 1.0 inclusive. |
calculateMinimumAlpha
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 |
colorToHSL
void colorToHSL (int color, float[] outHsl)
Convert the ARGB color to its HSL (hue-saturation-lightness) components.
- outHsl[0] is Hue [0 .. 360)
- outHsl[1] is Saturation [0...1]
- outHsl[2] is Lightness [0...1]
Parameters | |
---|---|
color |
int : the ARGB color to convert. The alpha component is ignored |
outHsl |
float : 3-element array which holds the resulting HSL components
|
colorToLAB
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
|
colorToXYZ
void colorToXYZ (int color, double[] outXyz)
Convert the ARGB color to its CIE XYZ representative components.
The resulting XYZ representation will use the D65 illuminant and the CIE 2° Standard Observer (1931).
- outXyz[0] is X [0 ...95.047)
- outXyz[1] is Y [0...100)
- outXyz[2] is Z [0...108.883)
Parameters | |
---|---|
color |
int : the ARGB color to convert. The alpha component is ignored |
outXyz |
double : 3-element array which holds the resulting LAB components
|
compositeColors
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 |
distanceEuclidean
double distanceEuclidean (double[] labX, double[] labY)
Returns the euclidean distance between two LAB colors.
Parameters | |
---|---|
labX |
double |
labY |
double |
Returns | |
---|---|
double |
setAlphaComponent
int setAlphaComponent (int color, int alpha)
Set the alpha component of color
to be alpha
.
Parameters | |
---|---|
color |
int |
alpha |
int Value is 255 or less. |
Returns | |
---|---|
int |
Classes