Введение
PHP не ограничен созданием только HTML страничек. Он так же позволяет создавать и работать с файлами изображений в различных форматах включая GIF, PNG, JPEG, WBMP, и XPM. Что более удобно, PHP позволяет выводить изображение в потоке непосредственно в браузер. Для этого необходимо скомпилировать PHP с графической библиотекой GD, содержащей функции для работы с изображениями. Для работы с GD могут потребоваться другие библиотеки (в зависимости от формата изображений, с которыми возникла необходимость работать).
Существует стандартная функция PHP для получения размера изображения следующих форматов изображений: JPEG, GIF, PNG, SWF, TIFF и JPEG2000.
С модулем EXIF доступна работа с информацией, хранящейся в заголовках JPEG и TIFF изображений. Таким образом можно читать мета-данные, сгенерированные цифровыми фотоаппаратами. Модуль EXIF не требуется библиотеке GD.
Замечание: Прочитайте раздел требований, чтобы узнать, как расширить возможности чтения, записи и модификации изображений. Чтобы иметь возможность читать мета-данные изображений, взятых с цифровых фотоаппаратов нужно, уже упомянутый модуль EXIF.
Замечание: Функция getimagesize() не требует наличия библиотеки GD.
GD поддерживает ряд форматов. Ниже приведен список этих форматов и пометки о доступности, включая поддержку чтения и записи.
Формат | Поддержка чтения | Поддержка записи | Примечания |
---|---|---|---|
JPEG | TRUE |
TRUE |
GD 1.8+ |
PNG | TRUE |
TRUE |
|
GIF | TRUE |
TRUE |
Не доступно между GD 1.6 и GD 2.0.28 |
XBM | TRUE |
TRUE |
Чтение поддерживается с PHP 4.0.1 и запись с PHP 5.0.0 |
XPM | TRUE |
FALSE |
Чтение с PHP 4.0.1, но не доступно в Windows. Требует встроенной версии GD |
WBMP | TRUE |
TRUE |
GD 1.8+ |
WebP | TRUE |
TRUE |
GD 2.1+, PHP 5.5+ |
Несмотря на то, что большинство форматов в приведенной таблице доступны для чтения и записи, это не значит, что PHP был собран с их поддержкой. Чтобы узнать какие форматы были включены для GD при сборке, используйте функцию gd_info(). Для дополнительной информации смотрите раздел об установке.
Коментарии
The EXIF extension has been updated to support a much larger range of formats. This means that their format specific tags are now properly translated when parsing images with the exif_read_data() function. The following new formats are now supported:
Samsung
DJI
Panasonic
Sony
Pentax
Minolta
Sigma/Foveon
AGFA
Kyocera
Ricoh
Epson
The EXIF functions exif_read_data() and exif_thumbnail() now support passing streams as their first argument.