PHP getimagesize function

Like this blog? Consider exploring one of our sponsored banner ads...

getimagesize

(PHP 3, PHP 4, PHP 5)

getimagesize — Get the size of an imageDescriptionarray getimagesize ( string filename [, array &imageinfo] )

The getimagesize() function will determine the
size of any given image file and return the dimensions along with
the file type and a height/width text string to be used inside a
normal HTML <IMG> tag and the
correspondant HTTP content type.

getimagesize() can also return some more information
in imageinfo parameter.

Note:
Note that JPC and JP2 are capable of having components with different
bit depths. In this case, the value for “bits” is the highest bit depth encountered. Also, JP2
files may contain multiple JPEG 2000 codestreams. In this case,
getimagesize() returns the values for the first
codestream it encounters in the root of the file.

Parameters

filename

imageinfo

This optional parameter allows you to extract some extended
information from the image file. Currently, this will return the
different JPG APP markers as an associative array.
Some programs use these APP markers to embed text information in
images. A very common one is to embed
IPTC information in the APP13 marker.
You can use the iptcparse() function to parse the
binary APP13 marker into something readable.


Return Values

Returns an array with 5 elements.

Index 0 and 1 contains respectively the width and the height of the image.

Note:
Some formats may contain no image or may contain multiple images. In these
cases, getimagesize() might not be able to properly
determine the image size. getimagesize() will return
zero for width and height in these cases.

Index 2 is one of the IMAGETYPE_XXX constants indicating
the type of the image.

Index 3 is a text string with the correct
height=”yyy” width=”xxx” string that can be used
directly in an IMG tag.

mime is the correspondant MIME type of the image.
This information can be used to deliver images with correct the HTTP
Content-type header:

Example 1. getimagesize() and MIME types

$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size &amp;&amp; $fp) {
    header("Content-type: {$size['mime']}");
    fpassthru($fp);
    exit;
} else {
    // error
}

channels will be 3 for RGB pictures and 4 for CMYK
pictures. bits is the number of bits for each color.
However, for some image types, the presence of these values can be a bit
confusing. As an example, GIF always uses 3 channels
per pixel, but the number of bits per pixel cannot be calculated for an
animated GIF with a global color table.

On failure, FALSE is returned.

Errors/Exceptions

If accessing the filename image is impossible, or
if it isn’t a valid picture, getimagesize() will
generate an error of level E_WARNING.

ChangeLog

VersionDescription4.3.2 Support for JPC, JP2,
JPX, JB2,
XBM, and WBMP became available.
4.3.2 JPEG 2000 support was added for the imageinfo
parameter.
4.3.0 bits and channels are present
for other image types, too.
4.3.0 mime was added.
4.3.0 Support for SWC was added.
4.2.0 Support for TIFF was added.
4.0.5 URL support was added.


Examples

Example 2. getimagesize (file)

list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "&lt;img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" /&gt;";

Example 3. getimagesize (URL)

$size = getimagesize("http://www.example.com/gifs/logo.gif");
 
// if the file name has space in it, encode it properly
$size = getimagesize("http://www.example.com/gifs/lo%20go.gif");

Example 4. getimagesize() returning IPTC

$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}

Notes

Note:
The getimagesize() function does not require the GD
image library.

See Also

image_type_to_mime_type()exif_imagetype()exif_read_data()exif_thumbnail()



About this entry