Imager::Transform - a library of register machine image transformations


  # get a list of transformations
  my @funcs = Imager::Transform->list;
  # create a transformation object
  my $tran = Imager::Transform->new($name);
  # describe it
  print $tran->describe;
  # a list of constant names
  my @constants = $tran->constants;
  # information about some of the constants
  my @info = $tran->constants(@constants);


This module provides a library of transformations that use the Imager transform2() function.

The aim is to provide a place to collect these transformations.

At some point there might be an interface to add new functions, but there's not a whole lot of point to that.

The interface is a little sparse as yet.


my @names = Imager::Transform->list

Returns a list of the transformations.

my $desc = Imager::Transform->describe($name);
my $desc = $tran->describe()

Describes a transformation specified either by name (as a class method) or by reference (as an instance method).

The class method returns undef if there is no such transformation.

my $tran = Imager::Transform->new($name)

Create a new transformation object. Returns undef if there is no such transformation.

my @inputs = $tran->inputs;
my $inputs = $tran->inputs;

Returns a list of input image descriptions, or the number of them, depending on content.

The list contains hash references, which current contain only one member, desc, a description of the use of the input image.


Returns a list of names of constants that can be set for the transformation.

$tran->constants($name, $name, ...)

Returns a hashref for each named constant, which contains the default in key default and a description in key desc.

my $out = $tran->transform(\%opts, \%constants, @imgs)

Perform the image transformation.

Returns the new image on success, or undef on failure, in which case you can use $tran->errstr to get an error message.


The error message, if any from the last image transformation.


Needs more transformations.


Imager(3), transform.perl


Tony Cook <>