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 15     15   387166 use v5.12;
  15         74  
6 15     15   100 use warnings;
  15         30  
  15         958  
7 15     15   510 use Graphics::Toolkit::Color::Space 'max';
  15         27  
  15         4941  
8              
9             sub from_rgb {
10 9     9 0 17 my ($r, $g, $b) = @{$_[0]};
  9         27  
11 9         44 my $km = max($r, $g, $b);
12 9 50       25 return ([0,0,0,1]) unless $km; # prevent / 0
13 9         66 return ( [($km - $r) / $km,
14             ($km - $g) / $km,
15             ($km - $b) / $km,
16             1 - $km ]
17             );
18             }
19             sub to_rgb {
20 5     5 0 10 my ($c, $m, $y, $k) = @{$_[0]};
  5         17  
21 5         27 return ( [(1-$c) * (1-$k) ,
22             (1-$m) * (1-$k) ,
23             (1-$y) * (1-$k) ] );
24             }
25              
26             Graphics::Toolkit::Color::Space->new (
27             axis => [qw/cyan magenta yellow key/],
28             convert => {RGB => [\&to_rgb, \&from_rgb]},
29              
30             );