Осветление или затемнение цвета в php - Visavi.net https://visavi.net/ RSS - Visavi.net https://visavi.net/assets/img/images/logo_small.png RSS - Visavi.net https://visavi.net/ [email protected] (admin) [email protected] (admin) Wed, 15 May 2024 02:44:24 +0300 <pre class="prettyprint">sscanf($rrggbb, &#039;#%2x%2x%2x&#039;, $r, $g, $b);</pre> Увеличиваешь/уменьшаешь $r, $g, $b и обратно <pre class="prettyprint">sprintf(&#039;#%2x%2x%2x&#039;, $r, $g, $b);</pre> https://visavi.net/topics/35970/611230 Осветление или затемнение цвета в php Петр Sat, 29 Dec 2012 10:39:55 +0400 Сообщения https://visavi.net/topics/35970/611230 <pre class="prettyprint">&lt;?php /* * * Преобразовывает строку $text в строку-градиент * начиная с цвета $from и заканчивая цветом $to * Поддерживает работу как и с rgb режимом так и с hex * * &#64;param string $text - сама строка * &#64;param string $from - начальный цвет * &#64;param string $to - Конечный цвет * &#64;param string $mode - Режим, по умолчанию hex */ function str2gradient($text,$from=&#039;&#039;,$to=&#039;&#039;, $mode=&quot;hex&quot;) { if($mode==&quot;hex&quot;) { $to = hexdec($to&#91;0].$to&#91;1]).&quot;,&quot;.hexdec($to&#91;2].$to&#91;3]).&quot;,&quot;.hexdec($to&#91;4].$to&#91;5]); $from= hexdec($from&#91;0].$from&#91;1]).&quot;,&quot;.hexdec($from&#91;2].$from&#91;3]).&quot;,&quot;.hexdec($from&#91;4].$from&#91;5]); } if( empty($text) ) return &#039;&#039;; else $levels=strlen($text); if (empty($from)) $from = array(0,0,255); else $from = explode(&quot;,&quot;, $from); if (empty($to)) $to = array(255,0,0); else $to = explode(&quot;,&quot;, $to); $output = &quot;&quot;; for ($i=1;$i&lt;=$levels;$i++) { for ($ii=0;$ii&lt;3;$ii++) { $tmp&#91;$ii] = $from&#91;$ii] - $to&#91;$ii]; $tmp&#91;$ii] = floor($tmp&#91;$ii] / $levels); $rgb&#91;$ii] = $from&#91;$ii] - ($tmp&#91;$ii] * $i); if ($rgb&#91;$ii] &gt; 255) $rgb&#91;$ii] = 255; $rgb&#91;$ii] = dechex($rgb&#91;$ii]); $rgb&#91;$ii] = strtoupper($rgb&#91;$ii]); if (strlen($rgb&#91;$ii]) &lt; 2) $rgb&#91;$ii] = &quot;0$rgb&#91;$ii]&quot;; } $output .= &quot;&lt;font color=\&quot;#&quot;.$rgb&#91;0].$rgb&#91;1].$rgb&#91;2].&quot;\&quot;&gt;&quot; . $text&#91;$i -1 ] . &quot;&lt;/font&gt;&quot;; } return $output.&quot;\n&quot;; } ?&gt;</pre> https://visavi.net/topics/35970/611084 Осветление или затемнение цвета в php Apeccc Fri, 28 Dec 2012 14:43:51 +0400 Сообщения https://visavi.net/topics/35970/611084 ну дык это HEX, три числа в десятеричной форме, RGB (красный, зелёный, синий), понижаешь число - темнеет, повышаешь - светлеет https://visavi.net/topics/35970/611082 Осветление или затемнение цвета в php shilo Fri, 28 Dec 2012 14:33:22 +0400 Сообщения https://visavi.net/topics/35970/611082 Возник такой вопрос есть исходный цвет и нужно получить либо более светлый тон, либо тёмный. Например есть такой #4296BB а получить примерно такой #95C5DA. Гуглил два дня и ничего толкового для решения своей проблемы не нашёл.<br> <br> Может быть у кого-то есть формула или функция для таких операций на php буду благодарен. Или же есть другое решение этой проблемы https://visavi.net/topics/35970/611045 Осветление или затемнение цвета в php Иван Fri, 28 Dec 2012 12:16:35 +0400 Сообщения https://visavi.net/topics/35970/611045