<P>Image::Size understands and sizes data in the following formats:</P>
<DL>
<DT><DD>
GIF
<P></P>
<DT><DD>
JPG
<P></P>
<DT><DD>
XBM
<P></P>
<DT><DD>
XPM
<P></P>
<DT><DD>
PPM family (PPM/PGM/PBM)
<P></P>
<DT><DD>
PNG
<P></P>
<DT><DD>
TIF
<P></P>
<DT><DD>
BMP
<P></P></DL>
<P>When using the <A HREF="#item_imgsize"><CODE>imgsize</CODE></A> interface, there is a third, unused value returned
if the programmer wishes to save and examine it. This value is the three-
letter identity of the data type. This is useful when operating on open
file handles or in-memory data, where the type is as unknown as the size.
The two support routines ignore this third return value, so those wishing to
use it must use the base <A HREF="#item_imgsize"><CODE>imgsize</CODE></A> routine.</P>
<P>
<HR>
<H1><A NAME="diagnostics">DIAGNOSTICS</A></H1>
<P>The base routine, <A HREF="#item_imgsize"><CODE>imgsize</CODE></A>, returns <STRONG>undef</STRONG> as the first value in its list
when an error has occured. The third element contains a descriptive
error message.</P>
<P>The other two routines simply return <STRONG>undef</STRONG> in the case of error.</P>
<P>
<HR>
<H1><A NAME="caveats">CAVEATS</A></H1>
<P>Caching of size data can only be done on inputs that are file names. Open
file handles and scalar references cannot be reliably transformed into a
unique key for the table of cache data. Buffers could be cached using the
MD5 module, and perhaps in the future I will make that an option. I do not,
however, wish to lengthen the dependancy list by another item at this time.</P>
<P>
<HR>
<H1><A NAME="see also">SEE ALSO</A></H1>
<P><CODE>http://www.tardis.ed.ac.uk/~ark/wwwis/</CODE> for a description of <CODE>wwwis</CODE>
and how to obtain it.</P>
<P>
<HR>
<H1><A NAME="authors">AUTHORS</A></H1>
<P>Perl module interface by Randy J. Ray <EM>(<A HREF="mailto:rjray@uswest.com">rjray@uswest.com</A>)</EM>, original
image-sizing code by Alex Knowles <EM>(<A HREF="mailto:alex@ed.ac.uk">alex@ed.ac.uk</A>)</EM> and Andrew Tong
<EM>(<A HREF="mailto:werdna@ugcs.caltech.edu">werdna@ugcs.caltech.edu</A>)</EM>, used with their joint permission.</P>
<P>Some bug fixes submitted by Bernd Leibing <EM>(<A HREF="mailto:bernd.leibing@rz.uni-ulm.de">bernd.leibing@rz.uni-ulm.de</A>)</EM>.
PPM/PGM/PBM sizing code contributed by Carsten Dominik
<EM>(<A HREF="mailto:dominik@strw.LeidenUniv.nl">dominik@strw.LeidenUniv.nl</A>)</EM>. Tom Metro <EM>(<A HREF="mailto:tmetro@vl.com">tmetro@vl.com</A>)</EM> re-wrote the JPG
and PNG code, and also provided a PNG image for the test suite. Dan Klein
<EM>(<A HREF="mailto:dvk@lonewolf.com">dvk@lonewolf.com</A>)</EM> contributed a re-write of the GIF code. Cloyce Spradling
<EM>(<A HREF="mailto:cloyce@headgear.org">cloyce@headgear.org</A>)</EM> contributed TIFF sizing code and test images. Aldo
Calpini <EM>(<A HREF="mailto:a.calpini@romagiubileo.it">a.calpini@romagiubileo.it</A>)</EM> suggested support of BMP images (which
I <EM>really</EM> should have already thought of :-) and provided code to work