Я хочу знать, как создать функцию, которая дает код цвета и отображает градиент этого цвета. Например:
function generate_color(int colorindex) { ....... ....... Generate 10 pale colors of this color. }
пожалуйста, помогите мне
Ссылка на код Майкла довольно пугающая. Но решение прост. Это может быть яснее, если вы рассматриваете просто изображение с серой шкалой:
function create_pallette($start, $end, $entries=10) { $inc=($start - $end)/($entries-1); $out=array(0=>$start); for ($x=1; $x<$entries;$x++) { $out[$x]=$start+$inc * $x; } return $out; }
Только использование 3D-вектора (RGB) вместо 1D-вектора.
C.
В ответе на этот вопрос лежит ваше решение, только в Javascript …
Создайте более светлый / темный цвет в css с помощью javascript
Я не собираюсь это писать, но простой поиск Google для «lighten hex color php» дает:
function colourBrightness($hex, $percent) { // Work out if hash given $hash = ''; if (stristr($hex,'#')) { $hex = str_replace('#','',$hex); $hash = '#'; } /// HEX TO RGB $rgb = array(hexdec(substr($hex,0,2)), hexdec(substr($hex,2,2)), hexdec(substr($hex,4,2))); //// CALCULATE for ($i=0; $i<3; $i++) { // See if brighter or darker if ($percent > 0) { // Lighter $rgb[$i] = round($rgb[$i] * $percent) + round(255 * (1-$percent)); } else { // Darker $positivePercent = $percent - ($percent*2); $rgb[$i] = round($rgb[$i] * $positivePercent) + round(0 * (1-$positivePercent)); } // In case rounding up causes us to go to 256 if ($rgb[$i] > 255) { $rgb[$i] = 255; } } //// RBG to Hex $hex = ''; for($i=0; $i < 3; $i++) { // Convert the decimal digit to hex $hexDigit = dechex($rgb[$i]); // Add a leading zero if necessary if(strlen($hexDigit) == 1) { $hexDigit = "0" . $hexDigit; } // Append to the hex string $hex .= $hexDigit; } return $hash.$hex; }
http://lab.pxwebdesign.com.au/?p=14
Ваш Google так же хорош, как и мой!