Graphics::Color::CMYK - CMYK color model


Graphics-Color documentation Contained in the Graphics-Color distribution.

Index


Code Index:

NAME

Top

Graphics::Color::CMYK - CMYK color model

DESCRIPTION

Top

Graphics::Color::CMYK represents a Color in CMYK color model. Cyan stands for Cyan Magenta Yellow Key (or black).

SYNOPSIS

Top

    use Graphics::Color::CMYK;

    my $color = Graphics::Color::CMYK->new({
        cyan    => 120,
        magenta => .5
        yellow  => .25,
        key     => .5
    });

CONSTRUCTOR

Top

Graphics::Color::CMYK->new(%options);

Creates a new Graphics::Color::CMYK.

METHODS

Top

cyan

c

Set/Get the cyan component of this Color.

equal_to

Compares this color to the provided one. Returns 1 if true, else 0;

not_equal_to

The opposite of equal_to.

magenta

m

Set/Get the magenta component of this Color.

yellow

y

Set/Get the yellow component of this Color.

key

k

Set/Get the key (black) component of this Color.

name

Get the name of this color. Only valid if the color was created by name.

as_string

Get a string version of this Color in the form of CYAN,MAGENTA,YELLOW,KEY

as_percent_string

Return a percent formatted value for this color.

as_array

Get the CMYK values as an array

AUTHOR

Top

Cory Watson, <gphat@cpan.org>

SEE ALSO

Top

perl(1) http://en.wikipedia.org/wiki/CMYK

COPYRIGHT & LICENSE

Top


Graphics-Color documentation Contained in the Graphics-Color distribution.

package Graphics::Color::CMYK;
use Moose;
use MooseX::Aliases;

extends qw(Graphics::Color);

use Graphics::Color::Types qw(Number360OrLess NumberOneOrLess);
use Graphics::Color::RGB;

has 'cyan' => (
    is => 'rw',
    isa => NumberOneOrLess,
    default => 1,
    alias => 'c'
);
has 'magenta' => (
    is => 'rw',
    isa => NumberOneOrLess,
    default => 1,
    alias => 'm'
);
has 'yellow' => (
    is => 'rw',
    isa => NumberOneOrLess,
    default => 1,
    alias => 'y'
);
has 'key' => (
    is => 'rw',
    isa => NumberOneOrLess,
    default => 1,
    alias => 'k'
);
has 'name' => ( is => 'rw', isa => 'Str' );

sub as_string {
    my ($self) = @_;

    return sprintf('%0.2f,%0.2f,%0.2f,%0.2f',
        $self->cyan, $self->magenta, $self->yellow, $self->key
    );
}

sub as_percent_string {
    my ($self) = @_;

    return sprintf("%d%%, %d%%, %d%%, %d%%",
        $self->cyan * 100, $self->magenta * 100, $self->yellow * 100,
        $self->key * 100
    );
}

sub as_array {
    my ($self) = @_;

    return ($self->cyan, $self->magenta, $self->yellow, $self->key);
}

sub equal_to {
    my ($self, $other) = @_;

    return 0 unless defined($other);

    unless($self->cyan == $other->cyan) {
        return 0;
    }
    unless($self->magenta == $other->magenta) {
        return 0;
    }
    unless($self->yellow == $other->yellow) {
        return 0;
    }
    unless($self->key == $other->key) {
        return 0;
    }

    return 1;
}

__PACKAGE__->meta->make_immutable;

no Moose;
1;
__END__