Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: winwebber on December 27, 2018, 01:49:32 PM
-
Пытался понять, но так и не понял, как кликерман работает с цветом, точнее преобразует его в десятичный формат
Цитата из этой ветки:
http://crapware.aidf.org/forum/index.php?topic=70.msg767#msg767
цвет точки в 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
Что не так?
-
Нет, всё правильно. Ты байты перевернул.
Цвет RGB - C8 C8 FA
В HTML #C8C8FA порядок прямой - RGB. Он шестнадцатеричный по факту поэтому некоторые программы называют его HEX
Но HEX редакторы показывают порядок байт, а числа записываются с обратным порядком 0xFAC8C8 так они записаны в памяти это и есть число 16435400.
Некоторые утилиты эти записи тоже различают, вот например, pixie на скрине
-
Спасибо, помогло.