getimagesize
  Get the size of an image
  
 
  Description
  
   array getimagesize
    ( string $filename
   [, array &$imageinfo
  ] )
  
  
   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.
   
  
  Note: 
   
    The information about icons are retrieved from the icon with the highest
    bitrate.
   
  
  
 
 
  Parameters
  
   
    - 
     filename
- 
      
        This parameter specifies the file you wish to retrieve information
        about. It can reference a local file or (configuration permitting) a
        remote file using one of the supported streams. 
       
- 
     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 up to 7 elements. Not all image types will include
   the channels and bits 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 the correct HTTP 
   Content-type header:
   
    Example #1 getimagesize and MIME types
    
<?php
$size = getimagesize($filename);
$fp = fopen($filename, "rb");
if ($size && $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.
  
  
   For some image types, the presence of channels and
   bits 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
   getimagesize will generate an error of level
   E_WARNING. On read error,
   getimagesize will generate an error of level
   E_NOTICE.
  
  
 
 
 
  Examples
  
   
    Example #2 getimagesize example
    
<?php
list($width, $height, $type, $attr) = getimagesize("img/flag.jpg");
echo "<img src=\"img/flag.jpg\" $attr alt=\"getimagesize() example\" />";
?>
     
    
   
    Example #3 getimagesize (URL)
    
<?php
$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
    
<?php
$size = getimagesize("testimg.jpg", $info);
if (isset($info["APP13"])) {
    $iptc = iptcparse($info["APP13"]);
    var_dump($iptc);
}
?>
     
    
  
  
 
 
  Notes
  Note: 
This function does not require the GD image library.
  
 
 
  See Also
  
   
    - image_type_to_mime_type
- exif_imagetype
- exif_read_data
- exif_thumbnail