Я в настоящее время изучаю цветное управление / выбор и т.д. и столкнулся со следующей частью кода. Я задавался вопросом кого-то, мог сказать мне, что делает следующая часть кода, и сломайте его для меня Спасибо!
$newVal = round(round(($rgb['red'] / 0x33)) * 0x33);
В детали, каков 0x33
Спасибо в adavnce
Кажется, он преобразует $ rgb ['red']
в ближайшее кратное 0x33.
Вероятно, так происходит, чтобы цвет попал в так называемую «веб-безопасную» цветовую палитру, которая (если я правильно помню) состоит из цветов, значения rgb которых кратны 0x33.
0x33 - это 16-битное (шестнадцатеричное) представление числа 51 (десятичное).
0x33 - 51, поэтому значение 0–255 одного байта масштабируется до 0–5, а затем масштабируется обратно. Это приводит к тому, что значение сводится к максимальному кратному 51, меньшему, чем значение.
0x33 - это просто шестнадцатеричное значение для 33.
Я не совсем уверен, что происходит, но предполагаю, что он вычисляет безопасный для Интернета шестнадцатеричный код любого цвета. Или что-то в этом роде.
Как указал @Seth, это округление цветов до ближайшего "веб-безопасного" цвета. Это старая идея, возникшая еще в те времена, когда большинство цветных дисплеев были 8-битными. Одним из тех, кто сделал ее популярной, была компания Visibone, поскольку их "таблица цветов, безопасных для веб-сайтов" была их первым продуктом.
Подробнее см. в Web Colours.