Provided by: libimager-perl_1.006+dfsg-1_amd64 bug

NAME

       Imager - Perl extension for Generating 24 bit Images

SYNOPSIS

         # Thumbnail example

         #!/usr/bin/perl -w
         use strict;
         use Imager;

         die "Usage: thumbmake.pl filename\n" if !-f $ARGV[0];
         my $file = shift;

         my $format;

         # see Imager::Files for information on the read() method
         my $img = Imager->new(file=>$file)
           or die Imager->errstr();

         $file =~ s/\.[^.]*$//;

         # Create smaller version
         # documented in Imager::Transformations
         my $thumb = $img->scale(scalefactor=>.3);

         # Autostretch individual channels
         $thumb->filter(type=>'autolevels');

         # try to save in one of these formats
         SAVE:

         for $format ( qw( png gif jpeg tiff ppm ) ) {
           # Check if given format is supported
           if ($Imager::formats{$format}) {
             $file.="_low.$format";
             print "Storing image as: $file\n";
             # documented in Imager::Files
             $thumb->write(file=>$file) or
               die $thumb->errstr;
             last SAVE;
           }
         }

DESCRIPTION

       Imager is a module for creating and altering images.  It can read and write various image
       formats, draw primitive shapes like lines,and polygons, blend multiple images together in
       various ways, scale, crop, render text and more.

   Overview of documentation
       •   Imager - This document - Synopsis, Example, Table of Contents and Overview.

       •   Imager::Install - installation notes for Imager.

       •   Imager::Tutorial - a brief introduction to Imager.

       •   Imager::Cookbook - how to do various things with Imager.

       •   Imager::ImageTypes - Basics of constructing image objects with "new()": Direct
           type/virtual images, RGB(A)/paletted images, 8/16/double bits/channel, color maps,
           channel masks, image tags, color quantization.  Also discusses basic image information
           methods.

       •   Imager::Files - IO interaction, reading/writing images, format specific tags.

       •   Imager::Draw - Drawing Primitives, lines, boxes, circles, arcs, flood fill.

       •   Imager::Color - Color specification.

       •   Imager::Fill - Fill pattern specification.

       •   Imager::Font - General font rendering, bounding boxes and font metrics.

       •   Imager::Transformations - Copying, scaling, cropping, flipping, blending, pasting,
           convert and map.

       •   Imager::Engines - Programmable transformations through "transform()", "transform2()"
           and "matrix_transform()".

       •   Imager::Filters - Filters, sharpen, blur, noise, convolve etc. and filter plug-ins.

       •   Imager::Expr - Expressions for evaluation engine used by transform2().

       •   Imager::Matrix2d - Helper class for affine transformations.

       •   Imager::Fountain - Helper for making gradient profiles.

       •   Imager::IO - Imager I/O abstraction.

       •   Imager::API - using Imager's C API

       •   Imager::APIRef - API function reference

       •   Imager::Inline - using Imager's C API from Inline::C

       •   Imager::ExtUtils - tools to get access to Imager's C API.

       •   Imager::Security - brief security notes.

       •   Imager::Threads - brief information on working with threads.

   Basic Overview
       An Image object is created with "$img = Imager->new()".  Examples:

         $img=Imager->new();                         # create empty image
         $img->read(file=>'lena.png',type=>'png') or # read image from file
            die $img->errstr();                      # give an explanation
                                                     # if something failed

       or if you want to create an empty image:

         $img=Imager->new(xsize=>400,ysize=>300,channels=>4);

       This example creates a completely black image of width 400 and height 300 and 4 channels.

ERROR HANDLING

       In general a method will return false when it fails, if it does use the "errstr()" method
       to find out why:

       errstr()
           Returns the last error message in that context.

           If the last error you received was from calling an object method, such as read, call
           errstr() as an object method to find out why:

             my $image = Imager->new;
             $image->read(file => 'somefile.gif')
                or die $image->errstr;

           If it was a class method then call errstr() as a class method:

             my @imgs = Imager->read_multi(file => 'somefile.gif')
               or die Imager->errstr;

           Note that in some cases object methods are implemented in terms of class methods so a
           failing object method may set both.

       The "Imager->new" method is described in detail in Imager::ImageTypes.

METHOD INDEX

       Where to find information on methods for Imager class objects.

       addcolors() - "addcolors()" in Imager::ImageTypes - add colors to a paletted image

       addtag() -  "addtag()" in Imager::ImageTypes - add image tags

       align_string() - "align_string()" in Imager::Draw - draw text aligned on a point

       alphachannel() - "alphachannel()" in Imager::ImageTypes - return the channel index of the
       alpha channel (if any).

       arc() - "arc()" in Imager::Draw - draw a filled arc

       bits() - "bits()" in Imager::ImageTypes - number of bits per sample for the image

       box() - "box()" in Imager::Draw - draw a filled or outline box.

       check_file_limits() - "check_file_limits()" in Imager::Files

       circle() - "circle()" in Imager::Draw - draw a filled circle

       close_log() - "close_log()" in Imager::ImageTypes - close the Imager debugging log.

       colorchannels() - "colorchannels()" in Imager::ImageTypes - the number of channels used
       for color.

       colorcount() - "colorcount()" in Imager::ImageTypes - the number of colors in an image's
       palette (paletted images only)

       colormodel() - "colorcount()" in Imager::ImageTypes - how color is represented.

       combine() - "combine()" in Imager::Transformations - combine channels from one or more
       images.

       combines() - "combines()" in Imager::Draw - return a list of the different combine type
       keywords

       compose() - "compose()" in Imager::Transformations - compose one image over another.

       convert() - "convert()" in Imager::Transformations - transform the color space

       copy() - "copy()" in Imager::Transformations - make a duplicate of an image

       crop() - "crop()" in Imager::Transformations - extract part of an image

       def_guess_type() - "def_guess_type()" in Imager::Files - default function used to guess
       the output file format based on the output file name

       deltag() -  "deltag()" in Imager::ImageTypes - delete image tags

       difference() - "difference()" in Imager::Filters - produce a difference images from two
       input images.

       errstr() - "errstr()" - the error from the last failed operation.

       filter() - "filter()" in Imager::Filters - image filtering

       findcolor() - "findcolor()" in Imager::ImageTypes - search the image palette, if it has
       one

       flip() - "flip()" in Imager::Transformations - flip an image, vertically, horizontally

       flood_fill() - "flood_fill()" in Imager::Draw - fill an enclosed or same color area

       getchannels() - "getchannels()" in Imager::ImageTypes - the number of samples per pixel
       for an image

       getcolorcount() - "getcolorcount()" in Imager::ImageTypes - the number of different colors
       used by an image (works for direct color images)

       getcolors() - "getcolors()" in Imager::ImageTypes - get colors from the image palette, if
       it has one

       getcolorusage() - "getcolorusage()" in Imager::ImageTypes

       getcolorusagehash() - "getcolorusagehash()" in Imager::ImageTypes

       get_file_limits() - "get_file_limits()" in Imager::Files

       getheight() - "getheight()" in Imager::ImageTypes - height of the image in pixels

       getmask() - "getmask()" in Imager::ImageTypes - write mask for the image

       getpixel() - "getpixel()" in Imager::Draw - retrieve one or more pixel colors

       getsamples() - "getsamples()" in Imager::Draw - retrieve samples from a row or partial row
       of pixels.

       getscanline() - "getscanline()" in Imager::Draw - retrieve colors for a row or partial row
       of pixels.

       getwidth() - "getwidth()" in Imager::ImageTypes - width of the image in pixels.

       img_set() - "img_set()" in Imager::ImageTypes - re-use an Imager object for a new image.

       init() - "init()" in Imager::ImageTypes

       is_bilevel() - "is_bilevel()" in Imager::ImageTypes - returns whether image write
       functions should write the image in their bilevel (blank and white, no gray levels) format

       is_logging() "is_logging()" in Imager::ImageTypes - test if the debug log is active.

       line() - "line()" in Imager::Draw - draw an interval

       load_plugin() - "load_plugin()" in Imager::Filters

       log() - "log()" in Imager::ImageTypes - send a message to the debugging log.

       make_palette() - "make_palette()" in Imager::ImageTypes - produce a color palette from one
       or more input images.

       map() - "map()" in Imager::Transformations - remap color channel values

       masked() -  "masked()" in Imager::ImageTypes - make a masked image

       matrix_transform() - "matrix_transform()" in Imager::Engines

       maxcolors() - "maxcolors()" in Imager::ImageTypes

       NC() - "NC()" in Imager::Handy

       NCF() - "NCF()" in Imager::Handy

       new() - "new()" in Imager::ImageTypes

       newcolor() - "newcolor()" in Imager::Handy

       newcolour() - "newcolour()" in Imager::Handy

       newfont() - "newfont()" in Imager::Handy

       NF() - "NF()" in Imager::Handy

       open() - "read()" in Imager::Files - an alias for read()

       open_log() - "open_log()" in Imager::ImageTypes - open the debug log.

       parseiptc() - "parseiptc()" in Imager::Files - parse IPTC data from a JPEG image

       paste() - "paste()" in Imager::Transformations - draw an image onto an image

       polygon() - "polygon()" in Imager::Draw

       polyline() - "polyline()" in Imager::Draw

       polypolygon() - "polypolygon()" in Imager::Draw

       preload() - "preload()" in Imager::Files

       read() - "read()" in Imager::Files - read a single image from an image file

       read_multi() - "read_multi()" in Imager::Files - read multiple images from an image file

       read_types() - "read_types()" in Imager::Files - list image types Imager can read.

       register_filter() - "register_filter()" in Imager::Filters

       register_reader() - "register_reader()" in Imager::Files

       register_writer() - "register_writer()" in Imager::Files

       rotate() - "rotate()" in Imager::Transformations

       rubthrough() - "rubthrough()" in Imager::Transformations - draw an image onto an image and
       use the alpha channel

       scale() - "scale()" in Imager::Transformations

       scale_calculate() - "scale_calculate()" in Imager::Transformations

       scaleX() - "scaleX()" in Imager::Transformations

       scaleY() - "scaleY()" in Imager::Transformations

       setcolors() - "setcolors()" in Imager::ImageTypes - set palette colors in a paletted image

       set_file_limits() - "set_file_limits()" in Imager::Files

       setmask() - "setmask()" in Imager::ImageTypes

       setpixel() - "setpixel()" in Imager::Draw

       setsamples() - "setsamples()" in Imager::Draw

       setscanline() - "setscanline()" in Imager::Draw

       settag() - "settag()" in Imager::ImageTypes

       string() - "string()" in Imager::Draw - draw text on an image

       tags() -  "tags()" in Imager::ImageTypes - fetch image tags

       to_paletted() -  "to_paletted()" in Imager::ImageTypes

       to_rgb16() - "to_rgb16()" in Imager::ImageTypes

       to_rgb8() - "to_rgb8()" in Imager::ImageTypes

       to_rgb_double() - "to_rgb_double()" in Imager::ImageTypes - convert to double per sample
       image.

       transform() - "transform()" in Imager::Engines

       transform2() - "transform2()" in Imager::Engines

       type() -  "type()" in Imager::ImageTypes - type of image (direct vs paletted)

       unload_plugin() - "unload_plugin()" in Imager::Filters

       virtual() - "virtual()" in Imager::ImageTypes - whether the image has it's own data

       write() - "write()" in Imager::Files - write an image to a file

       write_multi() - "write_multi()" in Imager::Files - write multiple image to an image file.

       write_types() - "read_types()" in Imager::Files - list image types Imager can write.

CONCEPT INDEX

       animated GIF - "Writing an animated GIF" in Imager::Files

       aspect ratio - "i_xres", "i_yres", "i_aspect_only" in "Common Tags" in Imager::ImageTypes.

       blend - alpha blending one image onto another "rubthrough()" in Imager::Transformations

       blur - "gaussian" in Imager::Filters, "conv" in Imager::Filters

       boxes, drawing - "box()" in Imager::Draw

       changes between image - "Image Difference" in Imager::Filters

       channels, combine into one image - "combine()" in Imager::Transformations

       color - Imager::Color

       color names - Imager::Color, Imager::Color::Table

       combine modes - "Combine Types" in Imager::Draw

       compare images - "Image Difference" in Imager::Filters

       contrast - "contrast" in Imager::Filters, "autolevels" in Imager::Filters

       convolution - "conv" in Imager::Filters

       cropping - "crop()" in Imager::Transformations

       CUR files - "ICO (Microsoft Windows Icon) and CUR (Microsoft Windows Cursor)" in
       Imager::Files

       "diff" images - "Image Difference" in Imager::Filters

       dpi - "i_xres", "i_yres" in "Common Tags" in Imager::ImageTypes, "Image spatial
       resolution" in Imager::Cookbook

       drawing boxes - "box()" in Imager::Draw

       drawing lines - "line()" in Imager::Draw

       drawing text - "string()" in Imager::Draw, "align_string()" in Imager::Draw

       error message - "ERROR HANDLING"

       files, font - Imager::Font

       files, image - Imager::Files

       filling, types of fill - Imager::Fill

       filling, boxes - "box()" in Imager::Draw

       filling, flood fill - "flood_fill()" in Imager::Draw

       flood fill - "flood_fill()" in Imager::Draw

       fonts - Imager::Font

       fonts, drawing with - "string()" in Imager::Draw, "align_string()" in Imager::Draw,
       Imager::Font::Wrap

       fonts, metrics - "bounding_box()" in Imager::Font, Imager::Font::BBox

       fonts, multiple master - "MULTIPLE MASTER FONTS" in Imager::Font

       fountain fill - "Fountain fills" in Imager::Fill, "fountain" in Imager::Filters,
       Imager::Fountain, "gradgen" in Imager::Filters

       GIF files - "GIF" in Imager::Files

       GIF files, animated - "Writing an animated GIF" in Imager::Files

       gradient fill - "Fountain fills" in Imager::Fill, "fountain" in Imager::Filters,
       Imager::Fountain, "gradgen" in Imager::Filters

       gray scale, convert image to - "convert()" in Imager::Transformations

       gaussian blur - "gaussian" in Imager::Filters

       hatch fills - "Hatched fills" in Imager::Fill

       ICO files - "ICO (Microsoft Windows Icon) and CUR (Microsoft Windows Cursor)" in
       Imager::Files

       invert image - "hardinvert" in Imager::Filters, "hardinvertall" in Imager::Filters

       JPEG - "JPEG" in Imager::Files

       limiting image sizes - "Limiting the sizes of images you read" in Imager::Files

       lines, drawing - "line()" in Imager::Draw

       matrix - Imager::Matrix2d, "Matrix Transformations" in Imager::Engines, "transform()" in
       Imager::Font

       metadata, image - "Tags" in Imager::ImageTypes, Image::ExifTool

       mosaic - "mosaic" in Imager::Filters

       noise, filter - "noise" in Imager::Filters

       noise, rendered - "turbnoise" in Imager::Filters, "radnoise" in Imager::Filters

       paste - "paste()" in Imager::Transformations, "rubthrough()" in Imager::Transformations

       pseudo-color image - "to_paletted()" in Imager::ImageTypes, "new()" in Imager::ImageTypes

       posterize - "postlevels" in Imager::Filters

       PNG files - Imager::Files, "PNG" in Imager::Files

       PNM - "PNM (Portable aNy Map)" in Imager::Files

       rectangles, drawing - "box()" in Imager::Draw

       resizing an image - "scale()" in Imager::Transformations, "crop()" in
       Imager::Transformations

       RGB (SGI) files - "SGI (RGB, BW)" in Imager::Files

       saving an image - Imager::Files

       scaling - "scale()" in Imager::Transformations

       security - Imager::Security

       SGI files - "SGI (RGB, BW)" in Imager::Files

       sharpen - "unsharpmask" in Imager::Filters, "conv" in Imager::Filters

       size, image - "getwidth()" in Imager::ImageTypes, "getheight()" in Imager::ImageTypes

       size, text - "bounding_box()" in Imager::Font

       tags, image metadata - "Tags" in Imager::ImageTypes

       text, drawing - "string()" in Imager::Draw, "align_string()" in Imager::Draw,
       Imager::Font::Wrap

       text, wrapping text in an area - Imager::Font::Wrap

       text, measuring - "bounding_box()" in Imager::Font, Imager::Font::BBox

       threads - Imager::Threads

       tiles, color - "mosaic" in Imager::Filters

       transparent images - Imager::ImageTypes, "Transparent PNG" in Imager::Cookbook

       unsharp mask - "unsharpmask" in Imager::Filters

       watermark - "watermark" in Imager::Filters

       writing an image to a file - Imager::Files

SUPPORT

       The best place to get help with Imager is the mailing list.

       To subscribe send a message with "subscribe" in the body to:

          imager-devel+request@molar.is

       or use the form at:

           <http://www.molar.is/en/lists/imager-devel/>

       where you can also find the mailing list archive.

       You can report bugs by pointing your browser at:

           <https://rt.cpan.org/NoAuth/ReportBug.html?Queue=Imager>

       or by sending an email to:

           bug-Imager@rt.cpan.org

       Please remember to include the versions of Imager, perl, supporting libraries, and any
       relevant code.  If you have specific images that cause the problems, please include those
       too.

       If you don't want to publish your email address on a mailing list you can use CPAN::Forum:

         http://www.cpanforum.com/dist/Imager

       You will need to register to post.

CONTRIBUTING TO IMAGER

   Feedback
       I like feedback.

       If you like or dislike Imager, you can add a public review of Imager at CPAN Ratings:

         http://cpanratings.perl.org/dist/Imager

       This requires a Bitcard account (http://www.bitcard.org).

       You can also send email to the maintainer below.

       If you send me a bug report via email, it will be copied to Request Tracker.

   Patches
       I accept patches, preferably against the master branch in git.  Please include an
       explanation of the reason for why the patch is needed or useful.

       Your patch should include regression tests where possible, otherwise it will be delayed
       until I get a chance to write them.

       To browse Imager's git repository:

         http://git.imager.perl.org/imager.git

       To clone:

         git clone git://git.imager.perl.org/imager.git

       My preference is that patches are provided in the format produced by "git format-patch",
       for example, if you made your changes in a branch from master you might do:

         git format-patch -k --stdout master >my-patch.txt

       and then attach that to your bug report, either by adding it as an attachment in your
       email client, or by using the Request Tracker attachment mechanism.

AUTHOR

       Tony Cook <tonyc@cpan.org> is the current maintainer for Imager.

       Arnar M. Hrafnkelsson is the original author of Imager.

       Many others have contributed to Imager, please see the "README" for a complete list.

LICENSE

       Imager is licensed under the same terms as perl itself.

       A test font, generated by the Debian packaged Fontforge, FT2/fontfiles/MMOne.pfb, contains
       a Postscript operator definition copyrighted by Adobe.  See adobe.txt in the source for
       license information.

SEE ALSO

       perl(1), Imager::ImageTypes(3), Imager::Files(3), Imager::Draw(3), Imager::Color(3),
       Imager::Fill(3), Imager::Font(3), Imager::Transformations(3), Imager::Engines(3),
       Imager::Filters(3), Imager::Expr(3), Imager::Matrix2d(3), Imager::Fountain(3)

       <http://imager.perl.org/>

       Affix::Infix2Postfix(3), Parse::RecDescent(3)

       Other perl imaging modules include:

       GD(3), Image::Magick(3), Graphics::Magick <http://www.graphicsmagick.org/perl.html>(3),
       Prima::Image, IPA.

       For manipulating image metadata see Image::ExifTool.

       If you're trying to use Imager for array processing, you should probably using PDL.