Security Advisories (5)
CVE-2016-1238 (2016-08-02)

Imager would search the default current directory entry in @INC when searching for file format support modules.

CPANSA-Imager-2014-01 (2014-01-03)

When drawing on an image with an alpha channel where the source minimum is greater than zero, Imager would read from beyond the end of a malloc() allocated buffer. In rare circumstances this could lead to some of the source image not being written to the target image, or possibly to a segmentation fault.

CVE-2007-2459 (2007-05-02)

Heap-based buffer overflow in the BMP reader (bmp.c) in Imager perl module (libimager-perl) 0.45 through 0.56 allows remote attackers to cause a denial of service (application crash) and possibly execute arbitrary code via crafted 8-bit/pixel compressed BMP files.

CVE-2006-0053 (2006-04-10)

Imager (libimager-perl) before 0.50 allows user-assisted attackers to cause a denial of service (segmentation fault) by writing a 2- or 4-channel JPEG image (or a 2-channel TGA image) to a scalar, which triggers a NULL pointer dereference.

CVE-2024-53901 (2024-11-17)

"invalid next size" backtrace on use of trim on certain images

NAME

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

SYNOPSIS

# 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);

DESCRIPTION

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.

METHODS

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 hashrefs, which current contain only one member, desc, a description of the use of the input image.

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.

$tran->errstr

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

BUGS

Needs more transformations.

SEE ALSO

Imager(3), transform.perl