@@ 610-624 (lines=15) @@ | ||
607 | return ['X' => $r['X'] * $X, 'Y' => $r['Y'] * $Y, $Z => $r['Z'] * $Z]; |
|
608 | } |
|
609 | ||
610 | public function Lab_LCHab($o) |
|
611 | { |
|
612 | $H = atan2($o['b'], $o['a']) * (180 / PI); |
|
613 | ||
614 | if ($H < 0) { |
|
615 | $H += 360; |
|
616 | } else { |
|
617 | if ($H > 360) { |
|
618 | $H -= 360; |
|
619 | } |
|
620 | } |
|
621 | ||
622 | return ['L' => $o['L'], 'C' => sqrt($o['a'] * $o['a'] + $o['b'] * $o['b']), 'H' => $H]; |
|
623 | } |
|
624 | ||
625 | // CIE-L*uv (1976) = L: Luminescence / u: Saturation / v: Hue |
|
626 | ||
627 | public function Luv_XYZ($o) |
|
@@ 646-659 (lines=14) @@ | ||
643 | return ['X' => $X, 'Y' => $Y, 'Z' => $Z]; |
|
644 | } |
|
645 | ||
646 | public function Luv_LCHuv($o) |
|
647 | { |
|
648 | $H = atan2($o['v'], $o['u']) * (180 / PI); |
|
649 | ||
650 | if ($H < 0) { |
|
651 | $H += 360; |
|
652 | } else { |
|
653 | if ($H > 360) { |
|
654 | $H -= 360; |
|
655 | } |
|
656 | } |
|
657 | ||
658 | return ['L' => $o['L'], 'C' => sqrt($o['u'] * $o['u'] + $o['v'] * $o['v']), 'H' => $H]; |
|
659 | } |
|
660 | ||
661 | // CIE-L*CH (1986) = L: Luminescece / C: Chromacity / H: Hue |
|
662 |