СКОЛЬКО НУЖНО ЦВЕТОВ?
(C) Гаузер Э.Г., Баку, 25.08.25
website: www.erichware.com
Как известно, в человеческом глазу имеются два типа чувствительных клеток: палочки и колбочки. Палочки реагируют на свет, а колбочки - на цвет. Соответственно, все палочки одинаковы (и их намного больше, примерно 110 млн), а колбочки (их около 7 млн) делятся на группы. Если говорить о чувствительности глаза, то считается, что он способен улавливать даже отдельные фотоны. Сетчатка глаза (где и расположены все эти клетки) примерно круглая, а ее средний диаметр около 22 мм. Таким образом, "разрешение глаза" составляет около 100Мп, а размер самих "пикселей" около 2 мкм. На самом деле, расположение клеток на сетчатке неравномерно, но эта статья не про строение глаз.
Важно то, что чем слабее освещение, тем хуже мы воспринимаем цвета, ибо колбочки имеют малую чувствительность. Поговорка "в темноте все кошки серы" возникла не случайно. Однако, если цвета очень яркие, их восприятие тоже ухудшается. Теперь о цвете.
В природе есть только три основных цвета: это красный, желтый и синий (на самом деле, их особые оттенки). Если смешать их в равной пропорции, то красный+желтый дают оранжевый, желтый+синий дает зеленый, синий+красный дает фиолетовый, синий+желтый+красный дает белый, а черный - это просто отсутствие цветов (и света). Как получается голубой мы описывать не будем (см. далее). В радуге есть все эти цвета, хотя на самом деле их там не 7, но оттенки видны не всегда и не всем людям.
Логично предположить, что и колбочки воспринимают эти основные цвета. Но это не так. Вместо "желтых" колбочек в глазу имеются "зеленые". Причем зеленый цвет воспринимается человеком ярче и лучше всех прочих (возможно, это наследство от живших в лесу обезьян). Цветовая схема компьютеров (RGB) построена по тому же принципу: цветные экраны содержат пиксели красного(R), зеленого(G) и синего(B) свечения. И тут красный+зеленый дает желтый, а зеленый+синий дает голубой (см. выше), но зато нет варианта для оранжевого.
Понятно, что все "недостающие" цвета получаются тоже смешиванием первичных цветов, но в иных пропорциях. И вот тут пора перейти к теме статьи.
Качество экранов менялось за годы развития. Первые цветные экраны отображали только 4 цвета, потом 16, потом 262144 (по 6 бит на канал(цвет)), а сейчас стандарт - 8 бит (1 байт) на канал, что дает 256 оттенков каждого из основных цветов и всего 16777216 во всех сочетаниях. Вопрос - а нужно ли это?
Чисто технически 1 байт на канал - это удобно. Но если хранить цвет всего в 1 байте? Иногда этого вполне достаточно и это существенно экономит ресурсы. Графический формат "bmp" подразумевает и такой вариант, когда в области данных хранится номер цвета от 0 до 255, а в специальной области палитры хранятся значения RGB в полном диапазоне. Зачастую этого вполне хватает.
Однако, вариант "256 цветов" имеет один минус: все подобные изображения имеют разный набор цветов. И никакие операции с ними производить невозможно, если не выйти из этого режима (в графических редаторах типа фотошопа он называется "индексные цвета"). Кстати, а нужно ли иметь все эти 256 оттенков на каждый канал, видит ли их глаз?
Реально - нет. Даже если у вас полностью здоровое зрение, различить оттенки с R=240 или R=239 вы не сможете. Если интересно - у меня есть специальная программа подбора цветов - поразвлекайтесь, изучите свое зрение! Хотя программа предназначена для гармоничного подбора цветовых сочетаний, но подойдет и для тестирования глаз.
Так вот, существует т.н. "безопасная палитра". Изначально она была создана для старых браузеров, которые не могли отображать всю полную палитру. В чем ее суть? В том, что на каждый RGB-цвет дается всего 6 значений: 0, 51, 102, 153, 204, 255. Как видно, шаг тут равномерный, все значения легко вычисляются. В итоге полная палитра составляет даже не 256, а 6*6*6=216 оттенков.
Конечно, в принципе это очень мало, тем более, что браузеры и прочие программы уже давно не имеют ограничений для количества отображаемых оттенков. Ниже перед вами 3 одинаковые картинки: первая в формате 256 оттенков на канал, вторая - содержит всего 256 цветов, но каждый имеет 8 бит на цвет, а третья - сделана в соответствии с "безопасной палитрой", содержит всего 216 фиксированных цветов, причем не имеет значения, все ли они используются на данном изображении.
Уточню. Размер фото 640*480=307200 пикселей. На первом изображении разных цветов ровно столько же. На втором изображении же разных цветов всего 256! То есть, качество фото ухудшено в 307200/256=1200 раз. Но думаю, что разницу между первой и второй картинкой ваши глаза не уловили!
А вот третья, конечно, откровенно хуже (хотя насколько оптимальным был перевод - это вопрос), потому что цвета "огрублены", сдвинуты. Поэтому использовать подобный формат для фотографий, естественно, не имеет смысла (хотя в целом картинка вполне "читаема"). Но! Его вполне можно использовать для логотипов, эмблем и прочих изображений с малым количеством цветов и не содержащих природных объектов. Да и для цветового оформления веб-страниц такого набора как было достаточно раньше, так достаточно и сейчас (что я обычно и делаю на своих сайтах). Мало того!
Работая над данной темой, я решил посмотреть какие вообще существуют "стандартные" цвета, т.е. цвета с общепринятыми названиями. Давно хотел сделать такой список, чтобы пользоваться самому. Ну, например, что такое "лазурный", "малиновый", "бурый", "золотой" и т.д.? Оказалось все гораздо сложнее, чем я предполагал...
Во-первых, про каждый такой цвет на разных сайтах даются разные "раскладки" RGB. Причем иногда они отличаются весьма значительно! Во-вторых, на разноязычных сайтах одни и те же вроде бы названия соответствуют разным оттенкам. То есть, еще и от страны зависит... В-третьих, далеко не все эти варианты соответствовали, например, лично моему восприятию.
Я понимаю, что "малиновый" или "сливовый" могут быть очень разными в зависимости от сорта малины или слив. И даже "цвет морской волны" зависит от кучи факторов. Но с другой стороны, как тогда пользоваться этими названиями? Какой в них тогда смысл? Причем я и в жизни сталкивался с разночтениями при разговоре, что иногда приводило едва ли не к ссорам.
И тогда я решил сделать некую "свою" шкалу цветов с самыми распространенными названиями, но привязанными к этой самой "безопасной палитре" (ее еще называют "web-палитрой"). Для этого я перелопатил сколько-то сайтов со списками цветов и их RGB-значениями, сопоставил со своим восприятием и в итоге получил список, в среднем достаточно объективно отражающий цветовые огттенки.
Разумеется, я не учитывал всякие варианты типа "цвет взбесившейся лягушки", "китайский индиго" или "ярко темно бежевый". Индиго есть индиго, а про лягушек говорить вообще смешно в данном контексте. Получившаяся таблица представлена ниже, хотя я понимаю, что учел, возможно, не все часто употребимые оттенки. Поэтому эта таблица, вполне вероятно, будет дополняться.
Как лучше расположить список, как сортировать. Логично вроде по "алфавиту". Но я все же выбрал "по оттенкам". Иначе говоря, значения RGB начинаются с больших и спускаются к малым, причем как бы "поразрядно". Ну, поймете. Это дает интересную картину изменения и связи между собой разных цветов, на первый взгляд друг от друга далеких.
белый | rgb(255,255,255) | (#FFFFFF) | |
песочный | rgb(255,255,153) | (#FFFF99) | |
желтый | rgb(255,255,000) | (#FFFF00) | |
бежевый | rgb(255,204,102) | (#FFCC66) | |
шафрановый | rgb(255,204,051) | (#FFCC33) | |
золотой | rgb(255,204,000) | (#FFCC00) | |
фиалковый | rgb(255,153,255) | (#FF99FF) | |
апельсиновый | rgb(255,153,000) | (#FF9900) | |
розовый | rgb(255,102,204) | (#FF66CC) | |
янтарный | rgb(255,102,051) | (#FF6633) | |
оранжевый | rgb(255,102,000) | (#FF6600) | |
малиновый | rgb(255,051,102) | (#FF3366) | |
кораловый | rgb(255,051,051) | (#FF3333) | |
алый | rgb(255,051,000) | (#FF3300) | |
яркофиолетовый | rgb(255,000,255) | (#FF00FF) | |
яркокрасный | rgb(255,000,000) | (#FF0000) | |
серебряный | rgb(204,204,204) | (#CCCCCC) | |
сиреневый | rgb(204,153,255) | (#CC99FF) | |
бронзовый | rgb(204,153,000) | (#CC9900) | |
медный | rgb(204,102,051) | (#CC6633) | |
рыжий | rgb(204,051,000) | (#CC3300) | |
пурпурный | rgb(204,000,102) | (#CC0066) | |
салатовый | rgb(153,255,153) | (#99FF99) | |
серый | rgb(153,153,153) | (#999999) | |
хаки | rgb(153,153,102) | (#999966) | |
болотный | rgb(153,153,000) | (#999900) | |
лиловый | rgb(153,102,204) | (#9966CC) | |
коричневый | rgb(153,102,000) | (#996600) | |
бордовый | rgb(153,051,051) | (#993333) | |
темнофиолетовый | rgb(153,000,153) | (#990099) | |
темнокрасный | rgb(153,000,000) | (#990000) | |
небесный | rgb(102,204,255) | (#66CCFF) | |
оливковый | rgb(102,153,051) | (#669933) | |
шоколадный | rgb(102,051,000) | (#663300) | |
сливовый | rgb(102,000,102) | (#660066) | |
бирюзовый | rgb(051,204,153) | (#33CC99) | |
темноголубой | rgb(000,153,153) | (#009999) | |
морской | rgb(051,102,153) | (#336699) | |
индиго | rgb(051,000,153) | (#330099) | |
бурый | rgb(051,000,000) | (#330000) | |
яркоголубой | rgb(000,255,255) | (#00FFFF) | |
яркозеленый | rgb(000,255,000) | (#00FF00) | |
лазурный | rgb(000,153,255) | (#0099FF) | |
мусульманский | rgb(000,153,000) | (#009900) | |
темнозеленый | rgb(000,102,000) | (#006600) | |
бутылочный | rgb(000,051,000) | (#003300) | |
яркосиний | rgb(000,000,255) | (#0000FF) | |
темносиний | rgb(000,000,153) | (#000099) | |
черный | rgb(000,000,000) | (#000000) |
Я планирую использовать эту таблицу в практических целях. Если вы захотите ею пользоваться - буду рад. Если хотите дополнить или скорректировать ее - пишите мне, все контакты есть на странице "Об авторе".