language: PHP (php 5.4.4)
date: 907 days 22 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
 
var_dump(color_avg('#ffffff','#000000',0));
var_dump(color_avg('#ffffff','#000000',.2));
var_dump(color_avg('#ffffff','#000000',.5));
var_dump(color_avg('#ffffff','#000000',.75));
var_dump(color_avg('#ffffff','#000000',1));
 
function color_avg($color1,$color2,$factor) {
        list($r1,$g1,$b1) = str_split(ltrim($color1,'#'),2);
        list($r2,$g2,$b2) = str_split(ltrim($color2,'#'),2);
 
        $r_avg = (hexdec($r1)*(1-$factor)+hexdec($r2)*$factor);
        $g_avg = (hexdec($g1)*(1-$factor)+hexdec($g2)*$factor);
        $b_avg = (hexdec($b1)*(1-$factor)+hexdec($b2)*$factor);
 
        $color_avg = '#'.sprintf("%02s",dechex($r_avg)).
                        sprintf("%02s",dechex($g_avg)).
                        sprintf("%02s",dechex($b_avg));
 
        return $color_avg;
}