File Coverage

lib/Graphics/Toolkit/Color/Space/Instance/CMYK.pm
Criterion Covered Total %
statement 16 16 100.0
branch 1 2 50.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 22 25 88.0


line stmt bran cond sub pod time code
1              
2             # CMYK color space specific code
3              
4             package Graphics::Toolkit::Color::Space::Instance::CMYK;
5 16     16   280636 use v5.12;
  16         42  
6 16     16   65 use warnings;
  16         17  
  16         708  
7 16     16   423 use Graphics::Toolkit::Color::Space 'max';
  16         34  
  16         3521  
8              
9             sub from_cmyk {
10 9     9 0 16 my ($c, $m, $y, $k) = @{$_[0]};
  9         27  
11 9         51 return ( [(1-$c) * (1-$k) ,
12             (1-$m) * (1-$k) ,
13             (1-$y) * (1-$k) ] );
14             }
15             sub to_cmyk {
16 9     9 0 11 my ($r, $g, $b) = @{$_[0]};
  9         23  
17 9         27 my $km = max($r, $g, $b);
18 9 50       38 return ([0,0,0,1]) unless $km; # prevent / 0
19 9         40 return ( [($km - $r) / $km,
20             ($km - $g) / $km,
21             ($km - $b) / $km,
22             1 - $km ]
23             );
24             }
25              
26             Graphics::Toolkit::Color::Space->new (
27             axis => [qw/cyan magenta yellow key/],
28             convert => {RGB => [\&from_cmyk, \&to_cmyk]},
29              
30             );