Files
devops/perl/Examples/Chap3/RGB-CMYK-caching
2025-09-17 16:08:16 +08:00

21 lines
417 B
Plaintext

###
### RGB_to_CMYK_caching
###
## Chapter 3 section
my %cache;
sub RGB_to_CMYK {
my ($r, $g, $b) = @_;
my $key = join ',', $r, $g, $b;
return $cache{$key} if exists $cache{$key};
my ($c, $m, $y) = (255-$r, 255-$g, 255-$b);
my $k = $c < $m ? ($c < $y ? $c : $y)
: ($m < $y ? $m : $y); # Minimum
for ($c, $m, $y) { $_ -= $k }
return $cache{$key} = [$c, $m, $y, $k];
}