Преимущества и недостатки HEX-формата цветов
Всем привет! Запустил сегодня SwishMax 3 (Adobe Flash) а там цвета в формате HEX т.е. так: #RRGGBB, и задумался а почему там в HEX формате а не в RGB? В Silverlight тоже такое-же было, и в Java тоже можно использовать HEX формат. В HTML элемент можно закодировать минимум 6 цветов - цвет рамки, цвет фона, цвет текста, цвет перечёркнутой линии текста, цвет тени, и цвет тени текста, т.е. один элемент может содержать до 24 байт цвета. Чем удобен и в чём преимущество HEX-формата цветов? И ещё вопрос, как кодируется глубина цвета, ведь RGB принимает значения от 0 до 255 где глубина?
Вот так в Java можно делать:
import java.awt.*; import javax.swing.*; class Main extends JFrame { public Main() { setTitle("Hello"); setSize(640, 480); add(new JButton("<html><body bgcolor=\"#EEEEEE\">Hello</body><html>")); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { new Main(); } }
Так почему-же HEX-формат цветов так популярен?
Так почему-же HEX-формат цветов так популярен?
Потому что такая форма записи удобне, чем десятичная. А другой вроде бы и не придумали.
В HTML элемент можно закодировать минимум 6 цветов - цвет рамки, цвет фона, цвет текста, цвет перечёркнутой линии текста, цвет тени, и цвет тени текста, т.е. один элемент может содержать до 24 байт цвета.
Это все 6 разных цветов записанных в формате #RRGGBB
Чем удобен и в чём преимущество HEX-формата цветов?
Тем, что другой записи просто нет :)
И ещё вопрос, как кодируется глубина цвета, ведь RGB принимает значения от 0 до 255 где глубина?
Что такое "глубина"? Есть RGBA, с записью #RRGGBBАА, где AA - это значение альфа-канала (прозрачности). Никакой "глубины" или "насыщенности" (как отдельного параметра) у цвета нет. ИМХО.
Потому что такая форма записи удобне, чем десятичная.
В начале когда только появился HTML я бы не сказал что это было удобно, т.к. нужно было из десятичной системы превращать в шестнадцетиричную. Только с появлением Microsoft FrontPage и более современных версий Adobe Photoshop можно было без проблем переводить в шестнадцетиричный формат. Лично когда я начал заниматься и изучать HTML, я писал в Notepad-е, а цвета подберал в Microsoft Paint, и конвертировал в HEX спомощью Windows-ского калькулятора.
А другой вроде бы и не придумали.
А как-же rgb и rgba, и даже сделали hsl и hsla, hsv и hsva? А если используешь WebGL или X3Dom там цвета от 0 до 1.
Что такое "глубина"?
Есть 4 бит цвета 0-15, есть 8 бит цвета 0-255, есть 16 бит 0-65535 цветов, 24 бит 0-16 миллионов цветов, см. https://ru.wikipedia.org/wiki/Глуб�%...
Вот видео по теме насчёт глубины цвета:
Если меняешь в графическом редакторе глубину цвета, то происходит постеризация см. https://ru.wikipedia.org/wiki/Изогелия т.е. фотка будет выглядет так:
Лично когда я начал заниматься и изучать HTML, я писал в Notepad-е, а цвета подберал в Microsoft Paint, и конвертировал в HEX спомощью Windows-ского калькулятора.
Все это очень мило, но наверняка были программулины, которые выдавали сразу HEX. Ну ты решил прострелить себе ногу - это твое лично дело. Мог просто угадывать нужный цвет играясь с HEX'ом. Было бы еще больше геморроя.
А как-же rgb и rgba
Принцип такой же - кодируется в HEX и это реально удобно.
Ну вот сравни:
#41AB4F и 065171079
HEX запись выгляди гораздо симпатичнее.
Вот видео по теме насчёт глубины цвета:
Это хрень какая-то. "Глубина цвета" - фиксированный параметр и его не надо кодировать ни в HEX, ни как-то еще.
Так почему-же HEX-формат цветов так популярен?
Вероятно как оптимальное описание цвета. Достаточно сравнить:255,255,255 и FFFFFF
И ещё вопрос, как кодируется глубина цвета,
Зачем? Это ведь не входной параметр, а выходной.
На входе картинка, на выходе устройство которое ее отображает. Это относится к параметрам устройства отображения
И ещё вопрос, как кодируется глубина цвета, ведь RGB принимает значения от 0 до 255 где глубина?
Под глубиной обычно понимают то, на сколько можно разбить диапазон цвета от максимума до минимума. FF или 256 - это и есть глубина, где один канал можно разбить на 256 значений (2 байта или 16 бит на канал). Если можно разбить на 1024 значения, то глубина цвета 10 бит. Для человека легче воспринимать десятичные числа, чем 16-ричные. Но в некоторых случаях удобно подставлять сразу 16-ричные.
Максимум и минимум обычно не изменяются - максимум любого канала (красный, синий или зелёный) это белый, а минимум - это чёрный. Из-за этого, кстати, значения вблизи максимумов и минимумов для любого канала очень похожи, почти совпадают (белая область на круговом спектре и серая - на квадратном), что означает, что вы тратите ёмкость переменной, хранящей цвет, зря.
Можно оптимизировать, кодируя каналы вблизи максимумов и минимумов с меньшей градацией, чем в середине диапазона каждого канала. А можно кодировать не каналы, а другие параметры цвета, типа оттенка, насыщенности и яркости (hue, saturation, luminosity). Но для железа обычно всё приводится всё равно к RGB или подобному. Способы кодировки это форматы цвета. В Юнити например, их много можно выбрать для текстур
Все это очень мило, но наверняка были программулины, которые выдавали сразу HEX
Да я выше писал, современные версии Microsoft FrontPage и Adobe Photoshop. У нас денег тогда не было на эти программы, и в Казахстане нельзя было их купить легально, а нелегального у нас ничего дома небыло.
#41AB4F и 065171079
HEX запись выгляди гораздо симпатичнее.
А я вот так записываю background-color:rgb(0, 162, 232);, см. https://developer.mozilla.org/en-US/docs/Web/CSS/color_val..., для этого достаточно стандартные программы Windows - Microsoft Paint и Notepad, единственная проблема что старые браузеры это неподдерживают:
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <div style="background-color:rgb(0, 162, 232);"> Hello! </div> </body> </html>
Это хрень какая-то. "Глубина цвета" - фиксированный параметр и его не надо кодировать ни в HEX, ни как-то еще.
Да, но я не понимаю почему при разной глубине цвета всегда только от 0 до 255, ведь чем больше бит, тем должно больше цветов быть, а их не больше. Начиная с Windows 1.0, графическая карта могла отобразить всего лишь максимум 16 цветов, а Windows могла отоброзить очень много цветов:
Раньше всего было 16 цветов из-за маленькой видеопамяти, да и видеокарты были тогда не так развиты как сейчас. Допустим в Windows 3.11 16 цветов помещаются в пол-байта (4 бит), допустим при разрешение экрана 640x480 тратится видеопамять не 307200 байт, а 153600 байт.
Да я выше писал, современные версии Microsoft FrontPage и Adobe Photoshop. У нас денег тогда не было на эти программы, и в Казахстане нельзя было их купить легально, а нелегального у нас ничего дома небыло.
Наверняка кто-то заморочился и написал программу, которая показывает цвета и их значения. Для этого не нужен фотошоп. Подозреваю, что ты просто не в теме.
единственная проблема что старые браузеры это неподдерживают:
Ну значит либо такую запись в сад, либо старые браузеры :)
Раньше всего было 16 цветов из-за маленькой видеопамяти
Нет. 16 цветов было из-за отсутствия технологии и стоимости элементов.
Допустим в Windows 3.11 16 цветов помещаются в пол-байта (4 бит), допустим при разрешение экрана 640x480 тратится видеопамять не 307200 байт, а 153600 байт.
EGA был выпущен в 1984 году!
Напомню, что еще в 1981 году Билл Гейст говорил, что 640K - оперативки достаточно для всех. При этом 100К стоили 100$.
Наверняка кто-то заморочился и написал программу, которая показывает цвета и их значения. Для этого не нужен фотошоп. Подозреваю, что ты просто не в теме.
Нет я в теме, у меня в 2000 году в университете был доклад по HTML, он назывался "HTML с птичьего полёта", кроме того у меня в 2000 году была первая веб-страничка на narod.ru. У меня отец, сестра и зять работали в телекоме, а отец примерно с конца 80х работал на дому программистом, поэтому ему давали все нештяки бесплатно. Мы с отцом уже в конце 80х лазили в местную BBS-ку через модем.
А в 1997 году отцу дали Windows 95, вместе с Windows 95 был такой диск, там было много примеров на HTML, благодаря этому диску у меня появился интерес изучать HTML, диск забыл отец отдать телекому, и я нечайно его взял с собой в Германию:
А моя мама с 1991 года по 2002 год ездила по загранкам, но дольше всего она жила в Германии, поэтому из Германии в начале 2000 годов мне мама привезла такие программы для создания веб сайтов:
Нет. 16 цветов было из-за отсутствия технологии и стоимости элементов.
Ну я хз. 16 цветов это как раз пол байта.
EGA был выпущен в 1984 году!
Напомню, что еще в 1981 году Билл Гейст говорил, что 640K - оперативки достаточно для всех. При этом 100К стоили 100$.
У нас Windows 3.11 был уже в 1994 году, и игры работали в 256 цветов нормально, но из-за того что я игрался с аппаратным прерываниями и запорол отцу компьютер, он попросил на работе OS/2 Warp 3, а потом когда вышла Windows 95 отцу дали на работе Windows 95 вместе с диском который на фотографии, а потом ему дали ещё Windows NT 4.0.
У нас была в начале 2000х книга Коржинского С.Н. "Настольная книга web-мастера", и Коржинский сделал ещё в начале 2000 году программу Web Studio, демо версия программы шла с его книжкой на CD.
Нет я в теме
Сомневаюсь :)
у меня в 2000 году в университете был доклад по HTML, он назывался "HTML с птичьего полёта", кроме того у меня в 2000 году была первая веб-страничка на narod.ru.
Ну это так себе аргументы :) Ни тдно, ни другое никак не подтверждают твою экспертизу.
а отец примерно с конца 80х работал на дому программистом
Ну да :) Так я и поверил, что в конце 80-х, когда не было понятия "хоумофиса", когда какая-нибудь XTшка стоила примерно как автомобиль, твоему отцу кто-то дал дамой такую технику :)
Мы с отцом уже в конце 80х лазили в местную BBS-ку через модем.
Может быть в "конце 90-х"? В конце 80-х BBS в СССР не существовало и лазить было негде. Расцвет BBS был во второй половине 90-х.
У нас Windows 3.11 был уже в 1994 году
Так он тогда у всех был :)
и игры работали в 256 цветов нормально
К Виндосу это не имеет отношения. Это уже был VGA.
Сомневаюсь :)
Ну это так себе аргументы :) Ни тдно, ни другое никак не подтверждают твою экспертизу.
Меня в университете хвалили, в колледже я был лучше всех по программированию, те, кто туда поступил они пришли с Hauptschule в основном, поэтому мне немцы сильно завидовали.
Ну да :) Так я и поверил, что в конце 80-х, когда не было понятия "хоумофиса", когда какая-нибудь XTшка стоила примерно как автомобиль, твоему отцу кто-то дал дамой такую технику :)
Мой отец окончил ТГУ и у него красный диплом по ФизМату и он был классным программистом, моя мама моталась по командировкам с 1991 года по загранкам, сестра училась в это время в НГУ, и потому-что я был тяжелобольной поэтому моему отцу разрешили дома работать. А ещё ему фирмы подарили две квартиры. Первый компьютер у отца была нивка, а потом ему дали IBM PC. У моей мамы свой ноутбук был в 1996 году, и мама из Германии привезла ещё струйный принтер от Hewlett Packard и сканер от фирмы Agfa. Тут я писал - https://pikabu.ru/story/ya_byil_izgoem_10722886 и https://pikabu.ru/story/poezdka_v_germaniyu_k_mame_1065195...
Так он тогда у всех был :)
Не у всех, а только у тех, у кого были деньги на компьютер, или у тех, у которых отцы такие как мой отец имели дома компьютер.