Введение

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.

Предостережение

Тогда как поставляемая с PHP библиотека GD использует менеджер памяти Zend, системная — нет. Соответственно, ограничение директивы memory_limit не работает.

Модуль GD поддерживает ряд форматов. Ниже приводится список этих форматов и пометки о доступности, включая поддержку чтения и записи.

Форматы, поддерживаемые GD
Формат Поддержка чтения Поддержка записи Примечания
JPEG true true  
PNG true true  
GIF true true  
XBM true true  
XPM true false  
WBMP true true  
WebP true true  
BMP true true Доступно, начиная с PHP 7.2.0

Несмотря на открытость доступа к чтению и записи большей части форматов в приведённой таблице, это не означает, что PHP собрали с поддержкой этих форматов. Чтобы узнать, какие форматы включили для модуля GD при сборке, пользуются функцией gd_info(). Дополнительную информацию даёт раздел об установке.

add a note

User Contributed Notes 1 note

up
-24
gamesparamundo123 at gmail dot com
4 years ago
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.
To Top