
Imager::Fountain - a class for building fountain fills suitable for use by the fountain filter.

use Imager::Fountain;
my $f1 = Imager::Fountain->read(gimp=>$filename);
$f->write(gimp=>$filename);
my $f1 = Imager::Fountain->new;
$f1->add(start=>0, middle=>0.5, end=>1.0,
c0=>Imager::Color->new(...),
c1=>Imager::Color->new(...),
type=>$trans_type, color=>$color_trans_type);

Provide an interface to build arrays suitable for use by the Imager fountain filter. These can be loaded from or saved to a GIMP gradient file or you can build them from scratch.
Loads a gradient from the given GIMP gradient file, and returns a new Imager::Fountain object.
Save the gradient to a GIMP gradient file.
Create an empty fountain fill description.
Adds a new segment to the fountain fill, the possible options are:
The start position in the gradient where this segment takes effect between 0 and 1. Default: 0.
The mid-point of the transition between the 2 colors, between 0 and 1. Default: average of start and end.
The end of the gradient, from 0 to 1. Default: 1.
The color of the fountain fill where the fill parameter is equal to start. Default: opaque black.
The color of the fountain fill where the fill parameter is equal to end. Default: opaque black.
The type of segment, controls the way in which the fill parameter moves from 0 to 1. Default: linear.
This can take any of the following values:
The way in which the color transitions between c0 and c1. Default: direct.
This can take any of the following values:
Each channel is simple scaled between c0 and c1.
The color is converted to a HSV value and the scaling is done such that the hue increases as the fill parameter increases.
The color is converted to a HSV value and the scaling is done such that the hue decreases as the fill parameter increases.
In most cases you can ignore some of the arguments, eg.
# assuming $f is a new Imager::Fountain in each case here
use Imager ':handy';
# simple transition from red to blue
$f->add(c0=>NC('#FF0000), c1=>NC('#0000FF'));
# simple 2 stages from red to green to blue
$f->add(end=>0.5, c0=>NC('#FF0000'), c1=>NC('#00FF00'))
$f->add(start=>0.5, c0=>NC('#00FF00'), c1->NC('#0000FF'));
Creates a simple fountain fill object consisting of linear segments.
The arrayrefs passed as positions and colors must have the same number of elements. They must have at least 2 elements each.
colors must contain Imager::Color or Imager::Color::Float objects.
eg.
my $f = Imager::Fountain->simple(positions=>[0, 0.2, 1.0],
colors=>[ NC(255,0,0), NC(0,255,0),
NC(0,0,255) ]);
Documented for internal use.
Does the work of loading a GIMP gradient file.
Does the work of saving to a GIMP gradient file.

The add() documentation mentions a fill parameter in a few places, this is as good a place as any to discuss it.
The process of deciding the color produced by the gradient works through the following steps:

Tony Cook <tony@develop-help.com>

Imager(3)