Как кодируется цвет в RGB и что означают три числа от 0 до 255?
Видел запись цвета как rgb(255, 128, 0) и #FF8000. Понимаю, что R — красный, G — зелёный, B — синий. Но почему числа именно до 255 и как из трёх чисел получается один конкретный цвет на экране?
2 ответа
RGB — это смешивание трёх базовых цветов: Red, Green, Blue. Каждый канал говорит, насколько ярко светится эта составляющая.
Почему до 255? На каждый канал отводится 1 байт = 8 бит, а 8 бит дают 2⁸ = 256 уровней яркости → значения 0–255 (0 = канал погашен, 255 = максимум). Три канала по байту = 3 байта = 24 бита на пиксель.
(0, 0, 0)— чёрный (всё погашено),(255, 255, 255)— белый (всё на максимуме),(255, 0, 0)— чистый красный,(255, 128, 0)— оранжевый.
Запись #FF8000 — то же самое в hex: FF=255, 80=128, 00=0. Всего таких цветов 256³ ≈ 16,7 млн.
Лайфхак для перевода #FF8000 ↔ rgb: каждая пара hex-цифр — один канал. FF = 15·16 + 15 = 255, 80 = 8·16 + 0 = 128, 00 = 0. И наоборот: число канала переводишь в две hex-цифры. Поэтому цвет и пишут шестнадцатеричным — ровно 2 знака на байт.