exif_imagetype

(PHP 4 >= 4.3.0, PHP 5)

exif_imagetypeОпределение типа изображения

Описание

int exif_imagetype ( string $filename )

exif_imagetype() считывает начальные байты изображения и проверяет их сигнатуру.

exif_imagetype() может использоваться, чтобы избежать вызовов других exif-функций с неподдерживаемыми аргументами. Также при взаимодействии с $_SERVER['HTTP_ACCEPT'] можно проверять, будет ли изображение отображаться в броузере.

Список параметров

filename
Изображение, тип которого требуется определить.

Возвращаемые значения

Если корректная сигнатура обнаружена, функция вернет соответствующую типу изображения константу. В противном случае функция вернет FALSE. Возвращаемое значение то же, что и во втором аргументе при возврате из функции getimagesize(), однако exif_imagetype() значительно быстрее.

Замечание:

В случаях, когда невозможно считать количество байтов из файла достаточное для определения типа изображения, функция exif_imagetype() вызовет предупреждение уровня E_NOTICE и вернет FALSE.

Список изменений

Версия Описание
5.3.0 Добавлена поддержка иконок.
4.3.2 Поддержка JPC, JP2, JPX, JB2, XBM и WBMP
4.3.0 Поддержка SWC

Предопределенные константы

Следующие определенные константы представляют возможные возвращаемые значения функции exif_imagetype():

Imagetype константы
Значение Константа
1 IMAGETYPE_GIF
2 IMAGETYPE_JPEG
3 IMAGETYPE_PNG
4 IMAGETYPE_SWF
5 IMAGETYPE_PSD
6 IMAGETYPE_BMP
7 IMAGETYPE_TIFF_II (порядок байт intel)
8 IMAGETYPE_TIFF_MM (порядок байт motorola)
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

Примеры

Пример #1 Пример использования exif_imagetype()

<?php
if (exif_imagetype('image.gif') != IMAGETYPE_GIF) {
    echo 
'Картинка не gif';
}
?>

Смотрите также

  • image_type_to_mime_type() - Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
  • getimagesize() - Получение размера изображения

Коментарии

Автор:
By trial and error, it seems that a file has to be 12 bytes or larger in order to avoid a "Read error!".  Here's a work-around to avoid an error being thrown:

// exif_imagetype throws "Read error!" if file is too small
if (filesize($uploadfile) > 11)
    $mimetype = exif_imagetype($uploadfile);
else
    $mimetype = false;
2007-11-19 10:40:07
http://php5.kiev.ua/manual/ru/function.exif-imagetype.html
If the function exif_imagetype() is not available,
you can try the following workaround:

if ( ! function_exists( 'exif_imagetype' ) ) {
    function exif_imagetype ( $filename ) {
        if ( ( list($width, $height, $type, $attr) = getimagesize( $filename ) ) !== false ) {
            return $type;
        }
    return false;
    }
}
2008-01-13 03:36:23
http://php5.kiev.ua/manual/ru/function.exif-imagetype.html
Windows users: If you get the fatal error "Fatal error:  Call to undefined function exif_imagetype()", and you have enabled php_exif.dll, make sure you enable php_mbstring.dll. You must put mbstring before exif in the php.ini, i.e.:

extension=php_mbstring.dll
extension=php_exif.dll

You can check whether this has worked by calling phpinfo() and searching for exif.
2010-11-03 10:02:44
http://php5.kiev.ua/manual/ru/function.exif-imagetype.html
Because I only want to check for jpeg or png from a memory string, this is my 2 functions that are quick and don't have any dependencies :

<?php
 
function is_jpeg(&$pict)
  {
    return (
bin2hex($pict[0]) == 'ff' && bin2hex($pict[1]) == 'd8');
  }

  function 
is_png(&$pict)
  {
    return (
bin2hex($pict[0]) == '89' && $pict[1] == 'P' && $pict[2] == 'N' && $pict[3] == 'G');
  }
?>
2013-09-18 12:01:01
http://php5.kiev.ua/manual/ru/function.exif-imagetype.html

    Поддержать сайт на родительском проекте КГБ