RGB Color Space
RGB (Red, Green, Blue) is the most common color space for digital displays, web colors, and digital images. It's an additive color model where colors are created by combining different intensities of red, green, and blue light.
Channels
RGB has three channels:
r(Red): Intensity of red lightg(Green): Intensity of green lightb(Blue): Intensity of blue light
Channel Ranges
All channels have the same range:
- Minimum: 0 (no color)
- Maximum: 255 (full intensity)
Default Values
All channels default to 0 when not specified, resulting in black (rgb(0, 0, 0)).
Creating RGB Colors
use Negarity\Color\Color;
// Create an RGB color
$color = Color::rgb(255, 100, 50);
// Create with individual channel access
$red = Color::rgb(255, 0, 0);
$green = Color::rgb(0, 255, 0);
$blue = Color::rgb(0, 0, 255);
Working with RGB Channels
Getting Channel Values
$color = Color::rgb(255, 128, 64);
$r = $color->getR(); // 255
$g = $color->getG(); // 128
$b = $color->getB(); // 64
Checking Channel Existence
use Negarity\Color\ColorSpace\RGB;
RGB::hasChannel('r'); // true
RGB::hasChannel('g'); // true
RGB::hasChannel('b'); // true
RGB::hasChannel('a'); // false (RGBA has alpha)
Getting Channel Defaults
use Negarity\Color\ColorSpace\RGB;
RGB::getChannelDefaultValue('r'); // 0
RGB::getChannelDefaultValue('g'); // 0
RGB::getChannelDefaultValue('b'); // 0
Getting All Channels
use Negarity\Color\ColorSpace\RGB;
RGB::getChannels(); // ['r', 'g', 'b']
Validation
RGB automatically validates channel values:
use Negarity\Color\Color;
use Negarity\Color\Exception\InvalidColorValueException;
try {
// This will throw InvalidColorValueException
$color = Color::rgb(300, 100, 50); // R value exceeds 255
} catch (InvalidColorValueException $e) {
// Handle error
}
Use Cases
- Web Development: CSS colors, HTML color codes
- Digital Images: Most image formats use RGB
- Screen Display: All modern displays use RGB
- Color Picking: Most color pickers default to RGB
- Gaming: Game engines typically work in RGB
Color Space Information
use Negarity\Color\ColorSpace\RGB;
RGB::getName(); // "rgb"
RGB::getChannels(); // ['r', 'g', 'b']
RGB::supportsIlluminant(); // false
RGB::supportsObserver(); // false
See Also
- RGBA Color Space - RGB with transparency
- Creating Colors - How to create RGB colors
- Getting Channels - How to access RGB channel values