Added Color::mix()

This commit is contained in:
Dylan K. Taylor 2017-12-01 19:56:44 +00:00
parent 92a1f45175
commit d9f0546cb3

View File

@ -101,6 +101,30 @@ class Color{
$this->b = $b & 0xff;
}
/**
* Mixes the supplied list of colours together to produce a result colour.
*
* @param Color[] ...$colors
* @return Color
*/
public static function mix(Color ...$colors) : Color{
$count = count($colors);
if($count < 1){
throw new \ArgumentCountError("No colors given");
}
$a = $r = $g = $b = 0;
foreach($colors as $color){
$a += $color->a;
$r += $color->r;
$g += $color->g;
$b += $color->b;
}
return new Color((int) ($r / $count), (int) ($g / $count), (int) ($b / $count), (int) ($a / $count));
}
/**
* Returns a Color from the supplied RGB colour code (24-bit)
* @param int $code