Настоящий цвет (24 бита) в Википедии описан в соответствующей части как
24 бита почти всегда используют 8 бит каждого из R, G, B. Начиная с 2018 года, 24-битная глубина цвета используется практически на каждом дисплее компьютера и телефона и в подавляющем большинстве форматов хранения изображений. Почти все случаи, когда на пиксель приходится 32 бита, означают, что 24 используются для цвета, а оставшиеся 8 являются альфа-каналом или не используются.
2 24 дает 16 777 216 цветовых вариаций. Человеческий глаз может различать до десяти миллионов цветов [10], и поскольку гамма дисплея меньше, чем диапазон человеческого зрения, это означает, что он должен охватывать этот диапазон с большей детализацией, чем может быть воспринято. ...
...
Системы Macintosh называют 24-битный цвет «миллионами цветов». Термин «Настоящий цвет» иногда используется для обозначения того, что в этой статье называется «Прямой цвет». [13] Он также часто используется для обозначения всех глубин цвета, больших или равных 24.
Все 16,777,216 цветов
задача
Напишите программу, которая генерирует и возвращает все 16 777 216 цветовых вариаций в массиве в виде строк в rgb()
функции CSS.
5.1. Функции RGB:
rgb()
иrgba()
rgb()
Функция определяет цвет RGB, указав красный, зеленые и синие каналы напрямую. Его синтаксис:rgb() = rgb( <percentage>{3} [ / <alpha-value> ]? ) | rgb( <number>{3} [ / <alpha-value> ]? ) <alpha-value> = <number> | <percentage>
Первые три аргумента указывают красный, зеленый и синий каналы цвета соответственно.
0%
представляет минимальное значение для этого цветового канала в гамме sRGB и100%
представляет максимальное значение. A<number>
эквивалентно a<percentage>
, но с другим диапазоном:0
снова представляет минимальное значение для цветового канала, но255
представляет максимум. Эти значения основаны на том факте, что многие графические движки хранят цветовые каналы внутри себя как один байт, который может содержать целые числа от 0 до 255. Реализации должны соблюдать точность канала как созданную или вычисленную, где это возможно. Если это невозможно, канал должен быть округлен до ближайшего значения с максимально возможной точностью, округлен в большую сторону, если два значения одинаково близки.Последний аргумент -
<alpha-value>
указывает альфа цвета. Если задано как<number>
, полезный диапазон значения0
(представляющий полностью прозрачный цвет) -1
(представляющий полностью непрозрачный цвет). Если задано как,0%
представляет полностью прозрачный цвет, а100%
представляет полностью непрозрачный цвет. Если опущено, по умолчанию100%
.Значения вне этих диапазонов не являются недопустимыми, но привязаны к диапазонам, определенным здесь во время вычисления значения.
По устаревшим причинам
rgb()
также поддерживает альтернативный синтаксис, который разделяет все его аргументы запятыми:rgb() = rgb( <percentage>#{3} , <alpha-value>? ) | rgb( <number>#{3} , <alpha-value>? )
Также по старым причинам
rgba()
также существует функция с идентичной грамматикой и поведениемrgb()
.
или шестнадцатеричный #RRGGBB
формат записи RGB
5.2. Шестнадцатеричные обозначения RGB:
#RRGGBB
Шестнадцатеричная нотация цвета CSS позволяет задавать цвет, задавая каналы в виде шестнадцатеричных чисел, что аналогично тому, как цвета часто записываются непосредственно в компьютерном коде. Это также короче, чем запись того же цвета в
rgb()
нотации.Синтаксис a
<hex-color>
- это<hash-token>
токен, значение которого состоит из 3, 4, 6 или 8 шестнадцатеричных цифр. Другими словами, шестнадцатеричный цвет записывается как хеш-символ «#», за которым следует некоторое количество цифр 0–9 или букв af (регистр букв не имеет значения -#00ff00
идентичен#00FF00
).Количество заданных шестнадцатеричных цифр определяет, как декодировать шестнадцатеричное представление в цвет RGB:
6 цифр
Первая пара цифр, интерпретируемая как шестнадцатеричное число, указывает красный канал цвета, где
00
представляет минимальное значение, аff
(255 в десятичном виде) представляет максимум. Следующая пара цифр, интерпретируемая таким же образом, обозначает зеленый канал, а последняя пара обозначает синий. Альфа-канал цвета полностью непрозрачен.Пример 2.
Другими словами,#00ff00
представляет тот же цвет, что иrgb(0 255 0)
(зеленый лайм).
См . Черновой вариант цветового модуля CSS для редактора. Уровень 4
Примеры
rgb()
Функция CSS ( вместо запятой можно использовать символ пробела , например, rgb(0 255 0)
)
// `rgb()` `<percentage>` as strings in resulting array
['rgb(0%,0%,0%)', ...,'rgb(0%,255%,0)', ...'rgb(255,255,255)']
// `rgb()` `<number>` as strings in resulting array
['rgb(0,0,0)', ...,'rgb(0,255,0)', ...'rgb(255,255,255)']
CSS RGB шестнадцатеричное обозначение RRGGBB
// RGB hexadecimal notation as strings in resulting array
['#000000', ...,'#00ff00', ...'#ffffff']
Критерии победы
Наименее байты используются для написания программы.