Acme-DreamyImage

 view release on metacpan or  search on metacpan

lib/Acme/DreamyImage.pm  view on Meta::CPAN

sub random_color {
    return [map { $self->random(255) } 1..4]
}

my @types = Imager->combines;
sub random_combine_type {
    my $i = $self->random( 0+ @types );
    return $types[$i];
}

sub random_background {
    my $image = Imager->new(xsize => $self->width, ysize => $self->height, channels => 3);
    $image->box(filled => 1, color => [255, 255, 255]);
    $image->filter(type => "gradgen",
                   xo => [map { $self->random($self->width)  } 1..2],
                   yo => [map { $self->random($self->height) } 1..2],
                   colors => [ map { $self->random_color } 1..2 ]);

    $image->filter(type => "noise",    subtype => 0, amount => $self->random(10));
    $image->filter(type => "gaussian", stddev  => $self->random( ($self->width + $self->height) / 2 * 0.03 ));

lib/Acme/DreamyImage.pm  view on Meta::CPAN

}

sub new_layer {
    my ($xsize, $ysize, $cb) = @_;
    my $layer = Imager->new(xsize => $xsize, ysize => $ysize, channels => 4);
    $cb->($layer);
    return $layer;
}

sub random_image {
    my $image = $self->random_background;
    my $xsize = $self->width;
    my $ysize = $self->height;

    new_layer(
        $xsize, $ysize,
        sub {
            my ($layer) = @_;
            my $xymax = $xsize > $ysize ? $xsize : $ysize;
            for (1..$self->random(24)) {
                $layer->arc(

lib/Acme/DreamyImage.pm  view on Meta::CPAN

=head1 NAME

Acme::DreamyImage - Dreamy image generator

=head1 SYNOPSIS

  use Acme::DreamyImage;

  my $img = Acme::DreamyImage->new(seed => $_, width => 1024, height => 768);

  $img->write(file => "nice_background.png");

=head1 DESCRIPTION

Acme::DreamyImage is a image generator that produce dreamy-looking images.

=head1 AUTHOR

Kang-min Liu E<lt>gugod@gugod.orgE<gt>

=head1 SEE ALSO



( run in 0.741 second using v1.01-cache-2.11-cpan-d8267643d1d )