Получить цветовой оттенок с PHP - PullRequest
1 голос
/ 20 марта 2011

Я хочу получить более яркий вывод в шестнадцатеричном виде из заданного шестнадцатеричного значения с помощью PHP.Например, я даю цвет #cc6699 в качестве входного, и я хочу #ee88aa в качестве выходного.Как мне поступить так в PHP?

Ответы [ 4 ]

7 голосов
/ 20 марта 2011

Вам необходимо преобразовать цвет в RGB, внести дополнения и преобразовать обратно:

// Convert string to 3 decimal values (0-255)
$rgb = array_map('hexdec', str_split("cc6699", 2));

// Modify color
$rgb[0] += 34;
$rgb[1] += 34;
$rgb[2] += 17;

// Convert back
$result = implode('', array_map('dechex', $rgb));

echo $result;

Смотрите его в действии здесь .

1 голос
/ 20 марта 2011

1.разделите цвет на три элемента: cc, 66, 99 2. Преобразуйте его в десятичное число с помощью http://php.net/manual/de/function.hexdec.php 3. Увеличьте три десятичных значения 4. Снова преобразуйте десятичное число в гекс 5. сложите все три элемента вместе

0 голосов
/ 20 марта 2011

Лучшее решение - конвертировать RGB в HSL или HSV (просто поищите в Google php конвертер hsl / hsv ).

Затем вы можете поиграть со значениями 'lightness' или 'value' в цветовом пространстве.

Затем преобразовать его обратно в цветовое пространство RGB.

0 голосов
/ 20 марта 2011

Не имеет прямого отношения к вашему вопросу, но эта статья интересна для преобразования цвета: http://beesbuzz.biz/code/hsv_color_transforms.php

...