PHP Tutorial: Mixing HEX Colors within a Range
This seems to be coming up more often with the client games I’ve been working on. Now everyone wants dynamic images and colors. This function will produce a random hexcode color within the range of the two hexcode colors given. It’s inclusive so you can also get the original colors returned.
<?php /** * Purpose: produce a color within a range of two hexcode colors * Precondition: two hexcode colors, min/max range values optional * Postcondition: one random color within the range returned **/ function mixRange($color1, $color2, $MIN = 1, $MAX = 10) { $range = rand($MIN, $MAX); $r = hexdec(substr($color1,0,2)); $g = hexdec(substr($color1,2,2)); $b = hexdec(substr($color1,4,2)); $gr = (hexdec(substr($color2,0,2))-$r)/$MAX; //Graduation Size Red $gg = (hexdec(substr($color2,2,2))-$g)/$MAX; $gb = (hexdec(substr($color2,4,2))-$b)/$MAX; return str_pad(dechex($r+($gr*$range)),2,'0',STR_PAD_LEFT) . str_pad(dechex($g+($gg*$range)),2,'0',STR_PAD_LEFT) . str_pad(dechex($b+($gb*$range)),2,'0',STR_PAD_LEFT); } ?>