exif_imagetype

Determine the type of an image

Description

intfalse exif_imagetype(string $filename)

exif_imagetype reads the first bytes of an image and checks its signature.

exif_imagetype can be used to avoid calls to other exif functions with unsupported file types or in conjunction with $_SERVER['HTTP_ACCEPT'] to check whether or not the viewer is able to see a specific image in the browser.

Parameters

filename
The image being checked.

Return Values

When a correct signature is found, the appropriate constant value will be returned otherwise the return value is false. The return value is the same value that getimagesize returns in index 2 but exif_imagetype is much faster.

The following constants are defined, and represent possible exif_imagetype return values:

Imagetype Constants
Value Constant
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (intel byte order)
8 IMAGETYPE_TIFF_MM (motorola byte order)
9 IMAGETYPE_JPC
10 IMAGETYPE_JP2
11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO
18 IMAGETYPE_WEBP
19 IMAGETYPE_AVIF

Note:

exif_imagetype will emit an E_NOTICE and return false if it is unable to read enough bytes from the file to determine the image type.

Changelog

Version Description
7.1.0 Added WebP support.
8.1.0 Added AVIF support.

Examples

Example #1 exif_imagetype example

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 'The picture is not a gif';
}
?>

See Also

  • image_type_to_mime_type
  • getimagesize