Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Преимущества и недостатки HEX-формата цветов

3261  1 2 3 4 все
uscheswoi_82 коренной житель15.01.24 14:19
uscheswoi_82
NEW 15.01.24 14:19 

Всем привет! Запустил сегодня 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-формат цветов так популярен?

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#1 
Программист коренной житель15.01.24 15:34
NEW 15.01.24 15:34 
в ответ uscheswoi_82 15.01.24 14:19, Последний раз изменено 15.01.24 15:35 (Программист)
Так почему-же HEX-формат цветов так популярен?

Потому что такая форма записи удобне, чем десятичная. А другой вроде бы и не придумали.


В HTML элемент можно закодировать минимум 6 цветов - цвет рамки, цвет фона, цвет текста, цвет перечёркнутой линии текста, цвет тени, и цвет тени текста, т.е. один элемент может содержать до 24 байт цвета.

Это все 6 разных цветов записанных в формате #RRGGBB


Чем удобен и в чём преимущество HEX-формата цветов?

Тем, что другой записи просто нет :)


И ещё вопрос, как кодируется глубина цвета, ведь RGB принимает значения от 0 до 255 где глубина?

Что такое "глубина"? Есть RGBA, с записью #RRGGBBАА, где AA - это значение альфа-канала (прозрачности). Никакой "глубины" или "насыщенности" (как отдельного параметра) у цвета нет. ИМХО.



#2 
uscheswoi_82 коренной житель15.01.24 17:13
uscheswoi_82
NEW 15.01.24 17:13 
в ответ Программист 15.01.24 15:34
Потому что такая форма записи удобне, чем десятичная.

В начале когда только появился 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/Изогелия т.е. фотка будет выглядет так:





Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#3 
Программист коренной житель15.01.24 21:15
NEW 15.01.24 21:15 
в ответ uscheswoi_82 15.01.24 17:13
Лично когда я начал заниматься и изучать HTML, я писал в Notepad-е, а цвета подберал в Microsoft Paint, и конвертировал в HEX спомощью Windows-ского калькулятора.

Все это очень мило, но наверняка были программулины, которые выдавали сразу HEX. Ну ты решил прострелить себе ногу - это твое лично дело. Мог просто угадывать нужный цвет играясь с HEX'ом. Было бы еще больше геморроя.


А как-же rgb и rgba

Принцип такой же - кодируется в HEX и это реально удобно.

Ну вот сравни:

#41AB4F и 065171079

HEX запись выгляди гораздо симпатичнее.


Вот видео по теме насчёт глубины цвета:

Это хрень какая-то. "Глубина цвета" - фиксированный параметр и его не надо кодировать ни в HEX, ни как-то еще.

#4 
AlexNek патриот15.01.24 21:38
AlexNek
NEW 15.01.24 21:38 
в ответ uscheswoi_82 15.01.24 14:19
Так почему-же HEX-формат цветов так популярен?

Вероятно как оптимальное описание цвета. Достаточно сравнить:255,255,255 и FFFFFF


И ещё вопрос, как кодируется глубина цвета,

Зачем? Это ведь не входной параметр, а выходной.

На входе картинка, на выходе устройство которое ее отображает. Это относится к параметрам устройства отображения

#5 
alex445 коренной житель15.01.24 23:34
NEW 15.01.24 23:34 
в ответ uscheswoi_82 15.01.24 14:19, Последний раз изменено 15.01.24 23:48 (alex445)
И ещё вопрос, как кодируется глубина цвета, ведь RGB принимает значения от 0 до 255 где глубина?

Под глубиной обычно понимают то, на сколько можно разбить диапазон цвета от максимума до минимума. FF или 256 - это и есть глубина, где один канал можно разбить на 256 значений (2 байта или 16 бит на канал). Если можно разбить на 1024 значения, то глубина цвета 10 бит. Для человека легче воспринимать десятичные числа, чем 16-ричные. Но в некоторых случаях удобно подставлять сразу 16-ричные.


Максимум и минимум обычно не изменяются - максимум любого канала (красный, синий или зелёный) это белый, а минимум - это чёрный. Из-за этого, кстати, значения вблизи максимумов и минимумов для любого канала очень похожи, почти совпадают (белая область на круговом спектре и серая - на квадратном), что означает, что вы тратите ёмкость переменной, хранящей цвет, зря.



Можно оптимизировать, кодируя каналы вблизи максимумов и минимумов с меньшей градацией, чем в середине диапазона каждого канала. А можно кодировать не каналы, а другие параметры цвета, типа оттенка, насыщенности и яркости (hue, saturation, luminosity). Но для железа обычно всё приводится всё равно к RGB или подобному. Способы кодировки это форматы цвета. В Юнити например, их много можно выбрать для текстур



#6 
uscheswoi_82 коренной житель16.01.24 18:10
uscheswoi_82
NEW 16.01.24 18:10 
в ответ Программист 15.01.24 21:15
Все это очень мило, но наверняка были программулины, которые выдавали сразу 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>


Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#7 
uscheswoi_82 коренной житель16.01.24 18:21
uscheswoi_82
16.01.24 18:21 
в ответ Программист 15.01.24 21:15
Это хрень какая-то. "Глубина цвета" - фиксированный параметр и его не надо кодировать ни в HEX, ни как-то еще.

Да, но я не понимаю почему при разной глубине цвета всегда только от 0 до 255, ведь чем больше бит, тем должно больше цветов быть, а их не больше. Начиная с Windows 1.0, графическая карта могла отобразить всего лишь максимум 16 цветов, а Windows могла отоброзить очень много цветов:



Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#8 
uscheswoi_82 коренной житель16.01.24 18:32
uscheswoi_82
NEW 16.01.24 18:32 
в ответ uscheswoi_82 16.01.24 18:21, Последний раз изменено 16.01.24 18:33 (uscheswoi_82)

Раньше всего было 16 цветов из-за маленькой видеопамяти, да и видеокарты были тогда не так развиты как сейчас. Допустим в Windows 3.11 16 цветов помещаются в пол-байта (4 бит), допустим при разрешение экрана 640x480 тратится видеопамять не 307200 байт, а 153600 байт.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#9 
MrSanders коренной житель16.01.24 18:44
NEW 16.01.24 18:44 
в ответ uscheswoi_82 16.01.24 18:32

Сначала было слово. А если мы про PC то "сначала" был таки MDA. Монохромный. 16 цветов это уже продвинутый EGA.

#10 
alex445 коренной житель16.01.24 19:28
NEW 16.01.24 19:28 
в ответ MrSanders 16.01.24 18:44, Последний раз изменено 16.01.24 19:28 (alex445)

А я аще в детстве в кубики играл и по улице бегал - не до цветов было. ))

#11 
alex445 коренной житель16.01.24 19:30
NEW 16.01.24 19:30 
в ответ uscheswoi_82 16.01.24 18:21
Да, но я не понимаю почему при разной глубине цвета всегда только от 0 до 255, ведь чем больше бит, тем должно больше цветов быть, а их не больше.

Нет. От 0 до 255 только для глубины 2 байта на канал.

#12 
AlexNek патриот16.01.24 19:56
AlexNek
NEW 16.01.24 19:56 
в ответ uscheswoi_82 16.01.24 18:21
Да, но я не понимаю почему при разной глубине цвета всегда только от 0 до 255

В розетке у нас 220 вольт, а после блока питания, столько сколько нужно. Тут тоже самое.

#13 
Программист коренной житель17.01.24 10:17
NEW 17.01.24 10:17 
в ответ uscheswoi_82 16.01.24 18:10
Да я выше писал, современные версии Microsoft FrontPage и Adobe Photoshop. У нас денег тогда не было на эти программы, и в Казахстане нельзя было их купить легально, а нелегального у нас ничего дома небыло.

Наверняка кто-то заморочился и написал программу, которая показывает цвета и их значения. Для этого не нужен фотошоп. Подозреваю, что ты просто не в теме.


единственная проблема что старые браузеры это неподдерживают:

Ну значит либо такую запись в сад, либо старые браузеры :)


Раньше всего было 16 цветов из-за маленькой видеопамяти

Нет. 16 цветов было из-за отсутствия технологии и стоимости элементов.


Допустим в Windows 3.11 16 цветов помещаются в пол-байта (4 бит), допустим при разрешение экрана 640x480 тратится видеопамять не 307200 байт, а 153600 байт.

EGA был выпущен в 1984 году!

Напомню, что еще в 1981 году Билл Гейст говорил, что 640K - оперативки достаточно для всех. При этом 100К стоили 100$.


#14 
MrSanders коренной житель17.01.24 11:05
NEW 17.01.24 11:05 
в ответ Программист 17.01.24 10:17
При этом 100К стоили 100$.

А в 93-м я нашёл на развалах офигительную плату для ISA слота - с 3454 кб памяти. 10 или 15 долларов отдал. Прогресс! Зря я потом свой 286 продал. Сейчас на ебее похожую карту нашёл - за $150 продают.

#15 
uscheswoi_82 коренной житель17.01.24 14:01
uscheswoi_82
NEW 17.01.24 14:01 
в ответ Программист 17.01.24 10:17
Наверняка кто-то заморочился и написал программу, которая показывает цвета и их значения. Для этого не нужен фотошоп. Подозреваю, что ты просто не в теме.

Нет я в теме, у меня в 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.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#16 
uscheswoi_82 коренной житель17.01.24 14:12
uscheswoi_82
NEW 17.01.24 14:12 
в ответ Программист 17.01.24 10:17

У нас была в начале 2000х книга Коржинского С.Н. "Настольная книга web-мастера", и Коржинский сделал ещё в начале 2000 году программу Web Studio, демо версия программы шла с его книжкой на CD.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#17 
Программист коренной житель17.01.24 15:12
NEW 17.01.24 15:12 
в ответ uscheswoi_82 17.01.24 14:01
Нет я в теме

Сомневаюсь :)


у меня в 2000 году в университете был доклад по HTML, он назывался "HTML с птичьего полёта", кроме того у меня в 2000 году была первая веб-страничка на narod.ru.

Ну это так себе аргументы :) Ни тдно, ни другое никак не подтверждают твою экспертизу.


а отец примерно с конца 80х работал на дому программистом

Ну да :) Так я и поверил, что в конце 80-х, когда не было понятия "хоумофиса", когда какая-нибудь XTшка стоила примерно как автомобиль, твоему отцу кто-то дал дамой такую технику :)


Мы с отцом уже в конце 80х лазили в местную BBS-ку через модем.

Может быть в "конце 90-х"? В конце 80-х BBS в СССР не существовало и лазить было негде. Расцвет BBS был во второй половине 90-х.



У нас Windows 3.11 был уже в 1994 году

Так он тогда у всех был :)


и игры работали в 256 цветов нормально

К Виндосу это не имеет отношения. Это уже был VGA.

#18 
uscheswoi_82 коренной житель17.01.24 15:44
uscheswoi_82
NEW 17.01.24 15:44 
в ответ Программист 17.01.24 15:12
Сомневаюсь :)
Ну это так себе аргументы :) Ни тдно, ни другое никак не подтверждают твою экспертизу.

Меня в университете хвалили, в колледже я был лучше всех по программированию, те, кто туда поступил они пришли с 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...


Так он тогда у всех был :)

Не у всех, а только у тех, у кого были деньги на компьютер, или у тех, у которых отцы такие как мой отец имели дома компьютер.

Если я кому-то отвечаю, это не значит что я ему симпатизирую, каждый остаётся при своём мнение Дневник тяжелобольного инвалида
#19 
alex445 коренной житель17.01.24 15:46
NEW 17.01.24 15:46 
в ответ uscheswoi_82 17.01.24 15:44

Это всё фигня. Домик у тёплого моря - вот что ценно.

#20 
1 2 3 4 все