Welcome to Imager

Try our advanced search
 Old news
 Future Plans
  Bug Reporting  

Please report bugs via Request Tracker. Please include perl and Imager versions, library versions and information about the platform you're using.

  Current Release  

Imager 0.97 is the current release of Imager and is available from any CPAN mirror.

  Mailing List  

You can subscribe to the Imager mailing list by sending an email to imager-devel+request@molar.is with subscribe in the body.

There is also an archive


If you feel uncomfortable with subscribing to the mailing list you might try CPAN::Forum

  Future Plans  printable version
 / Home /

64-bit support

Imager builds on 64-bit platforms, but doesn't take advantage of the larger address space (and where applicable, available memory).

Currently the types branch has changes to:

  • use a larger integer type for co-ordinates
  • use size_t consistently for memory allocation

I've successfully created 4Gb+ images, filled with a source image as a pattern, scaled down and written to a file.

I've also successfully written the unscaled image to a file (though the Windows image viewer tried to suck up all available memory to view it.)

I'm in the process of reviewing the code for correct type use, and hope to have this ready for Imager 0.85.

Note: these changes will require a rebuild of any xs (or Inline::C) code that uses the Imager API.

"Linear Workflow"

Currently Imager does not take gamma into account. This will change, though currently I'm not entirely sure of the nature of the change.

More Drawing

I'm planning on adding better drawing support, including:

  • alpha channel blending for most drawing operations
  • thick lines
  • more combine modes

File format support

I'm not planning on adding any new file formats to Imager. I am planning on expanding support in the currently supported formats, including wide data for PNG files.

Any new formats can now go into Imager::File::type modules.

I have a draft Image::File::XPM in subversion (viewcvs)

More graphics primitives

The obvious ones we're missing are:

  • bezier curves, filled and unfilled (or some other parametric curve). There us an undocumented polybezier, but it's very inefficient and untested.

Better large sample support

Imager has had basic support for larger sample images for several releases now, but most of the code still works at 8-bits per sample.

The main thing holding me back from implementing this has been the large amount code duplication involved if I were to have both 8-bit and floating point implementations of each of the operations that Imager allows.

With the pre-processor included in 0.54 it should be simpler to handle large samples without so much source code duplication (there will be almost duplicate generated code though.)


Once there are some extra file formats out there as separate dists I'll create a bundle dist.


I'm looking at making Alien distributions for each of the libraries that Imager depends on. If I'm successful I'll make the Imager bundle include them.

This is proving complex at the moment, Alien really needs more infrastructure.

I spent a little time on this, but corion actually produced something, though I don't think he's released anything at this point.



Imager - vtc©2002