File Coverage

lib/Graphics/Toolkit/Color/Space/Instance/DCIP3.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             # DCI-P3,
3              
4             package Graphics::Toolkit::Color::Space::Instance::DCIP3;
5 16     16   255052 use v5.12;
  16         48  
6 16     16   60 use warnings;
  16         23  
  16         702  
7 16     16   427 use Graphics::Toolkit::Color::Space qw/spow/;
  16         19  
  16         3591  
8              
9             my $gamma = 2.6;
10              
11             sub from_dcip3 {
12 10     10 0 14 my ($rgb) = shift;
13 10 100       17 return [ map { (abs($_) > 0.04045) ? spow((($_ + 0.055) / 1.055 ), $gamma)
  30         84  
14             : ($_ / 12.92) } @$rgb ];
15             }
16             sub to_dcip3 {
17 10     10 0 13 my ($lrgb) = shift;
18 10 100       16 return [ map { (abs($_) > 0.0031308) ? ((spow($_, 1/$gamma) * 1.055) - 0.055)
  30         90  
19             : ($_ * 12.92) } @$lrgb ];
20             }
21            
22             Graphics::Toolkit::Color::Space->new(
23             name => 'DCI-P3',
24             alias_name => 'SMPTE P3',
25             family => 'RGB',
26             axis => [qw/red green blue/],
27             precision => 6,
28             convert => {'dci-p3-linear' => [\&from_dcip3, \&to_dcip3]},
29             );