]>
iEval git - convert-color-hsluv.git/blob - lib/Convert/Color/LCh.pm
1 package Convert
::Color
::LCh
;
6 use parent qw
/Convert::Color/;
8 our $VERSION = '1.000';
10 use Convert
::Color
::LUV
;
13 __PACKAGE__
->register_color_space('lch');
16 my ($class, $l, $c, $h) = @_;
17 ($l, $c, $h) = split /,/s, $l unless defined $c;
18 bless [$l, $c, $h], $class
29 my ($l, $c, $h) = @
$self;
30 my $hrad = $h / 180 * pi
;
31 my $u = $c * cos $hrad;
32 my $v = $c * sin $hrad;
33 Convert
::Color
::LUV
->new($l, $u, $v)
37 my ($class, $luv) = @_;
38 my ($l, $u, $v) = @
$luv;
39 my $c = sqrt $u * $u + $v * $v;
40 return $class->new($l, $c, 0) if $c < 0.00000001;
41 my $hrad = atan2 $v, $u;
42 my $h = $hrad * 180 / pi
;
44 $class->new($l, $c, $h)
47 sub rgb
{ shift->convert_to_luv->rgb }
48 sub new_rgb
{ shift->new_from_luv(Convert
::Color
::LUV
->new_rgb(@_)) }
57 Convert::Color::LCh - a color value in the CIE LCh color space
61 use Convert::Color::LCh;
62 my $red = Convert::Color::LCh->new(53.23712, 179.03810, 12.17705);
63 my $green = Convert::Color::LCh->new('87.73552,135.78953,127.71501');
66 my $blue = Convert::Color->new('lch:32.30087,130.68975,265.87432');
68 say $red->L; # 53.23712
69 say $red->C; # 179.03810
70 say $red->h; # 12.17705
71 say join ',', $blue->lch; # 32.30087,130.68975,265.87432
75 Objects of this class represent colors in the CIE LCh color space.
81 =item Convert::Color::LCh->B<new>(I<$l>, I<$c>, I<$h>)
83 Construct a color from its components.
85 =item Convert::Color::LCh->B<new>(I<"$l,$c,$h">)
87 Construct a color from a string. The string should contain the three
88 components, separated by commas.
96 Accessors for the three components of the color.
100 Returns the three components as a list.
110 Marius Gavrilescu, E<lt>marius@ieval.roE<gt>
112 =head1 COPYRIGHT AND LICENSE
114 Copyright (C) 2015 by Marius Gavrilescu
116 This library is free software; you can redistribute it and/or modify
117 it under the same terms as Perl itself, either Perl version 5.20.2 or,
118 at your option, any later version of Perl 5 you may have available.
This page took 0.063583 seconds and 4 git commands to generate.