public
Description: A Perl module to read the dimensions of images in several popular formats
Homepage: http://search.cpan.org/dist/Image-Size/
Clone URL: git://github.com/rjray/image-size.git
name age message
file .gitignore Wed Aug 12 00:47:34 -0700 2009 Added patterns to .gitignore, added initial REA... [rjray]
file Build.PL Sun Nov 08 17:46:36 -0800 2009 Prep for 3.220. [rjray]
file ChangeLog.xml Sun Nov 08 17:46:36 -0800 2009 Prep for 3.220. [rjray]
file MANIFEST.SKIP Mon Feb 23 04:56:21 -0800 2009 Prep work for rolling a 3.2 release [rjray]
file README.textile Sun Nov 08 17:46:36 -0800 2009 Prep for 3.220. [rjray]
directory etc/ Mon Feb 23 04:08:50 -0800 2009 Making large-scale house-keeping changes to the... [rjray]
directory ex/ Wed Oct 03 02:50:15 -0700 2007 Massive check-in to reproduce history from driv... [rjray]
file imgsize Wed Jan 28 17:35:27 -0800 2009 Fix URL/specification of the license info for L... [rjray]
directory lib/ Sun Nov 08 17:39:04 -0800 2009 Small fix to the regex for detecting GIFs, per ... [rjray]
directory t/ Wed Oct 21 16:36:42 -0700 2009 Removed useless signature test, added QA tests,... [rjray]
README.textile

Image::Size – Determine the size of images in several common formats

Version: 3.220 (See CHANGES below)

WHAT IS IT

Image::Size is a library based on the image-sizing code in the wwwimagesize script, a tool that analyzes HTML files and adds HEIGHT and WIDTH tags to IMG directives. Image::Size has generalized that code to return a raw (X, Y) pair, and included wrappers to pre-format that output into either HTML or a set of attribute pairs suitable for the CGI.pm library by Lincoln Stein. Currently, Image::Size can size images in XPM, XBM, GIF, JPEG, PNG, MNG, TIFF, the PPM family of formats (PPM/PGM/PBM) and if Image::Magick is installed, the formats supported by it.

I did this because my old WWW server generated a lot of documents on demand rather than keeping them in static files. These documents not only used directional icons and buttons, but other graphics to annotate and highlight sections of the text. Without size attributes, browsers cannot render the text of a page until the image data is loaded and the size known for layout. This library enables scripts to size their images at run-time and include that as part of the generated HTML. Or for any other utility that uses and manipulates graphics. The idea of the basic interface + wrappers is to not limit the programmer to a certain data format.

USING Image::Size IN YOUR SCRIPTS

Image::Size has pod documentation that gives a more complete overview, but in a nutshell:


        use Image::Size;

        ($x, $y) = imgsize("something.gif");

And ($x, $y) is now the width and height of something.gif. 95% of my usage of this library is in conjunction with Lincoln Stein’s CGI.pm:


        use CGI ':all';
        use Image::Size 'attr_imgsize';

        #
        # Emit an IMG tag with size attributes:
        #
        print img({-SRC => '/server/images/arrow.gif',
                   attr_imgsize('/server_root/server/images/arrow.gif')});

Alternately, if you are running under Apache and mod_perl:


        # Assume $Q is an object of class CGI, $r is an Apache request object
        $r->print($Q->img({ -src => $imgpath,
                            attr_imgsize($r->lookup_uri($imgpath)->
                                         filename) }));

BUILDING/INSTALLING

This package uses Makefile.PL:


        perl Makefile.PL
        make && make test
        make install

You may need super-user access to install.

PROBLEMS/BUG REPORTS

Please send any reports of problems or bugs to rjray@blackperl.com.

CHANGES

  • lib/Image/Size.pm

Small fix to the regex for detecting GIFs, per Slaven Rezic.