Определение типа загруженной картинки

Понедельник, 15 ноября, 2010

При загрузке пользователем графического файла часто возникает необходимость определить, в каком формате этот файл, чтобы применить соответствующую функцию: imagecreatefrompng, imagecreatefromjpg и т.д. Чаще всего это реализуют, проверяя расширение файла, однако это ненадежный подход (пользователь может поменять расширение файла и тем самым спровоцировать ошибки). Другой вариант — считать файл в строку и сделать createimagefromstring, однако такой подход приводит к существенному увеличению объема требуемой для обработки изображения памяти.

Наиболее правильным решением является использование функции getimagesize, которая принимает в качестве параметра имя файла (а не ресурс с изображением, как многие другие) и возвращает массив из 7 элементов. Во втором элементе этого массива указывается тип изображения (его следует сравнивать с константами IMG_GIF, IMG_JPGIMG_PNGIMG_WBMPIMG_XPM).

Полезной особенностью данной функции является то, что она работает даже при отсутствии расширения gd.


Rambler's Top100