RGBColor
Renfordt\Colors\RGBColor
Represents a color as red, green, and blue components in the range 0–255. RGB is the format most conversions route through.
Properties
| Property | Type | Range | Notes |
|---|---|---|---|
red | int | 0–255 | Clamped on assignment |
green | int | 0–255 | Clamped on assignment |
blue | int | 0–255 | Clamped on assignment |
alpha | int | 0–255 | Opacity; 255 = opaque. Defaults to 255. Clamped on assignment |
Static methods
create(array $rgb): RGBColor
Creates an instance from [red, green, blue], with an optional 4th alpha element
([red, green, blue, alpha]). Alpha defaults to 255 (opaque) when omitted.
$rgb = RGBColor::create([255, 87, 51]);
$rgba = RGBColor::create([255, 87, 51, 128]); // 50% opaque
make(array $rgb): RGBColor
Alias of create().
Instance methods
getRGB(): array
Returns the components as [red, green, blue] (alpha excluded).
getRGBA(): array
Returns the components as [red, green, blue, alpha].
getName(): ?string
Returns the standard color name that matches this color exactly, or null when
no standard color matches. The match is on the RGB components only; alpha is
ignored. See NamedColor.
RGBColor::create([255, 99, 71])->getName(); // "tomato"
RGBColor::create([1, 2, 3])->getName(); // null
toHex(): HexColor
Converts to a HexColor. When alpha is below 255 the result is an 8-digit
#RRGGBBAA string; a fully opaque color produces a plain 6-digit string.
toHSL(int $precision = 4): HSLColor
Converts to HSLColor. $precision controls rounding of saturation, lightness,
and alpha. Hue is rounded to an integer. Alpha is converted to a 0.0–1.0
float.
toHSV(int $precision = 4): HSVColor
Converts to HSVColor. $precision controls rounding of saturation, value, and
alpha. Hue is rounded to an integer. Alpha is converted to a 0.0–1.0 float.
Example
$rgb = RGBColor::create([255, 100, 50]);
$rgb->green = 300; // clamped to 255
[$r, $g, $b] = $rgb->getRGB();
$hex = $rgb->toHex();
$hsl = $rgb->toHSL(precision: 2);