Author Topic: Цветовой код Clickermann 2.  (Read 1763 times)

0 Members and 1 Guest are viewing this topic.

winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
Цветовой код Clickermann 2.
« on: December 27, 2018, 01:49:32 PM »
Пытался понять, но так и не понял, как кликерман работает с цветом, точнее преобразует его в десятичный формат
Цитата из этой ветки:
http://crapware.aidf.org/forum/index.php?topic=70.msg767#msg767
Quote
цвет точки в 32 разрядной палитре образуется из насыщенности четырех каналов RGBA (A - альфа канал, прозрачность, в кликере не используется). каждый из этих каналов может принимать значения от 0 до 255. стандартный байт, 8 бит. 8 бит на четыре канала, отсюда собственно 32.

32-разряда можно впихнуть в обычное число типа __int32, последовательно 4 байта. При этом старшие 8 бит будут содержать значение альфа канала. Потом идут синий, зеленый и самый младший байт занимает красный.

нагляднее это было бы описать в 16-чном виде (почему вы думаете программисты любят HEX? это очень удобно). для перевода можно использовать калькулятор винды.

на примере твоей картинки
Dec: Alpha:0, Red:200 Green:200 Blue:250 
Hex: A:0x00 R:0xC8 G:0xC8 B:0xFA

распихиваем в 32 разряда: 00FAC8C8
переводим число FAC8C8 (первые нули не нужны) в десятичный вид и получаем 16435400

как было сказано альфа канал практически не используется, поэтому палитра по факту 24 битная. однако нет такого типа стандартных данных, как 3 байтный. поэтому под 24 битную точку используется все то же 32 битное число __int32, что и обеспечивает совместимость без дополнительных преобразований

можно было бы красиво преобразовывать число и в Hex (как в версиях 3.х) и даже в твой "RGB 200200250" но это дополнительные вычисления и расчеты, а значит задержки. а то что ты видишь сейчас это как раз самый прямой формат RGB просто в удобном виде для машины, но не для человека.
Т.е. переводим число FAC8C8 (первые нули не нужны) в десятичный вид и получаем 16435400.
Так и есть но кликерман определяет этот цвет (#FAC8C8) как 13158650
Что не так?

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Цветовой код Clickermann 2.
« Reply #1 on: December 27, 2018, 03:09:58 PM »
Нет, всё правильно. Ты байты перевернул.
Цвет RGB - C8 C8 FA
В HTML #C8C8FA  порядок прямой - RGB. Он шестнадцатеричный по факту поэтому некоторые программы называют его HEX

Но HEX редакторы показывают порядок байт, а числа записываются с обратным порядком 0xFAC8C8 так они записаны в памяти это и есть число 16435400.
Некоторые утилиты эти записи тоже различают, вот например, pixie на скрине
« Last Edit: December 27, 2018, 03:11:58 PM by Vint »


winwebber

  • Освоившийся
  • **
  • Posts: 46
    • View Profile
Re: Цветовой код Clickermann 2.
« Reply #2 on: December 27, 2018, 03:31:38 PM »
Спасибо, помогло.