[PHP] Преобразование RGB или HEX в цвет "Long Int" - PullRequest
3 голосов
/ 03 сентября 2010

Необходимо преобразовать цвета RGB или HEX в «Long Int» для другой программы, использующей этот формат. Не уверен, что специфика цветового формата "Long Int".

Можно сгенерировать значения "Long Int" вручную, используя эту палитру цветов http://hide -inoki.com / ru / soft / chunter / index.html , но функция php предпочтительнее .

hexdec генерирует правильное "Long Int" для некоторых значений HEX ('FFFFFF', '2F2F2F'), но не для других ('123456').

1 Ответ

7 голосов
/ 03 сентября 2010

Вы должны использовать функцию hexdec PHP.

hexdec('FFFFFF'): 16777215
hexdec('123456'): 1193046

и т.д.

Вы говорите, что эти значения не верны? Или вы по ошибке использовали dechex?


Обновление на основе вашего комментария, в котором говорится, что цвет "# 123456" должен быть "5649426" в формате "Long Int":

5649426 в базе 16 равен 0x563412, поэтому ясно, что для вашего формата требуется BGR вместо RGB.

Итак, сначала создайте строку «BGR» из строки «RGB», а затем передайте ее в hexdec:

$rgb = '123456';
$bgr = substr($rgb,4,2) . substr($rgb,2,2) . substr($rgb,0,2);
print hexdec($bgr);

выход 5649426.

...