File Coverage

lib/Graphics/Toolkit/Color/Space/Instance/Rec709.pm
Criterion Covered Total %
statement 14 14 100.0
branch 4 4 100.0
condition n/a
subroutine 5 5 100.0
pod 0 2 0.0
total 23 25 92.0


line stmt bran cond sub pod time code
1              
2             # Rec.709 illuminant D65, 2° standard observer
3              
4             package Graphics::Toolkit::Color::Space::Instance::Rec709;
5 15     15   277846 use v5.12;
  15         55  
6 15     15   106 use warnings;
  15         51  
  15         1034  
7 15     15   784 use Graphics::Toolkit::Color::Space qw/gamma_correct/;
  15         26  
  15         4609  
8              
9             sub from_lrgb {
10 4     4 0 8 my $lrgb = shift;
11 4 100       11 return [ map {(abs($_) < 0.018) ? ($_ * 4.5) : ((gamma_correct($_, 0.45) * 1.099) - 0.099)} @$lrgb];
  12         48  
12             }
13             sub to_lrgb {
14 4     4 0 10 my $rgb = shift;
15 4 100       11 return [ map {(abs($_) < 0.081) ? ($_ / 4.5) : gamma_correct(($_ + 0.099) / 1.099, 1 / 0.45)} @$rgb];
  12         47  
16              
17             }
18            
19             Graphics::Toolkit::Color::Space->new(
20             name => 'Rec.709',
21             alias => 'BT.709',
22             axis => [qw/red green blue/],
23             precision => 6,
24             convert => {LinearRGB => [\&to_lrgb, \&from_lrgb]},
25             );