Обработка изображений и модуль GD

Введение

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(). Дополнительную информацию даёт раздел об установке.

  • Установка и настройка
  • Предопределённые константы
  • Примеры
  • Функции GD и функции для работы с изображениями
    • gd_info — Вывод информации о текущей установленной GD библиотеке
    • getimagesize — Получает размер изображения
    • getimagesizefromstring — Получение размера изображения из строки данных
    • image_type_to_extension — Получает расширение файла для типа изображения
    • image_type_to_mime_type — Получение Mime-типа для типа изображения, возвращаемого функциями getimagesize, exif_read_data, exif_thumbnail, exif_imagetype
    • image2wbmp — Выводит изображение в браузер или записывает в файл
    • imageaffine — Вернуть изображение, содержащее аффинно-преобразованное изображение src, используя дополнительную область ограничения
    • imageaffinematrixconcat — Конкатенирует две аффинные матрицы преобразования
    • imageaffinematrixget — Получает матрицу аффинного преобразования
    • imagealphablending — Устанавливает режим сопряжения цветов для изображения
    • imageantialias — Определяет, применять ли функции сглаживания
    • imagearc — Рисует дугу
    • imageavif — Выводит изображение в браузер или записывает в файл
    • imagebmp — Выводит BMP-изображение в браузер или файл
    • imagechar — Рисует символ по горизонтали
    • imagecharup — Рисует символ по вертикали
    • imagecolorallocate — Создание цвета для изображения
    • imagecolorallocatealpha — Создаёт цвет для изображения
    • imagecolorat — Получение индекса цвета пиксела
    • imagecolorclosest — Получает ближайший индекс цвета
    • imagecolorclosestalpha — Получает ближайший индекс цвета с учётом прозрачности
    • imagecolorclosesthwb — Получает индекс цвета с заданными тоном, белизной и затемнением
    • imagecolordeallocate — Удаляет цвет из палитры изображения
    • imagecolorexact — Получает индекс цвета
    • imagecolorexactalpha — Получает индекс цвета и альфа-компонента
    • imagecolormatch — Приближает цвета палитрового изображения к truecolor-версии
    • imagecolorresolve — Получает идентификатор конкретного цвета или его ближайший аналог
    • imagecolorresolvealpha — Получает идентификатор конкретного цвета и альфа-компонента или его ближайший аналог
    • imagecolorset — Устанавливает набор цветов для индекса палитры
    • imagecolorsforindex — Получение цветов, соответствующих индексу
    • imagecolorstotal — Определяет количество цветов в палитре изображения
    • imagecolortransparent — Определяет цвет как прозрачный
    • imageconvolution — Наложение искривляющей матрицы 3х3, используя коэффициент и смещение
    • imagecopy — Копирует часть изображения
    • imagecopymerge — Копирует часть изображения с наложением
    • imagecopymergegray — Копирует часть изображения с наложением в градациях серого
    • imagecopyresampled — Копирует и изменяет размер части изображения с ресемплированием
    • imagecopyresized — Копирует и изменяет размер части изображения
    • imagecreate — Создаёт новое палитровое изображение
    • imagecreatefromavif — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefrombmp — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromgd — Создаёт новое изображение на основе GD-файла или URL-адреса
    • imagecreatefromgd2 — Создаёт новое изображение на основе GD2-файла или URL-адреса
    • imagecreatefromgd2part — Создаёт новое изображение на основе части GD2-файла или URL-адреса
    • imagecreatefromgif — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromjpeg — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefrompng — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromstring — Создаёт новое изображение из представленного строкой потока
    • imagecreatefromtga — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromwbmp — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromwebp — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromxbm — Создаёт новое изображение из файла или URL-адреса
    • imagecreatefromxpm — Создаёт новое изображение из файла или URL-адреса
    • imagecreatetruecolor — Создаёт новое truecolor-изображение
    • imagecrop — Обрезает изображение до заданного прямоугольника
    • imagecropauto — Обрезает изображение автоматически на основе заданного режима
    • imagedashedline — Рисует пунктирную линию
    • imagedestroy — Уничтожает изображение
    • imageellipse — Рисует эллипс
    • imagefill — Заливает фон
    • imagefilledarc — Рисует и заливает дугу
    • imagefilledellipse — Рисует эллипс с заливкой
    • imagefilledpolygon — Рисует закрашенный многоугольник
    • imagefilledrectangle — Рисует прямоугольник с заливкой
    • imagefilltoborder — Заливает область изображения
    • imagefilter — Применяет фильтр к изображению
    • imageflip — Отражает изображение по осям
    • imagefontheight — Получение высоты шрифта
    • imagefontwidth — Получение ширины шрифта
    • imageftbbox — Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта
    • imagefttext — Наносит текст на изображение путём рендеринга шрифта библиотекой FreeType 2
    • imagegammacorrect — Применяет гамма-коррекцию к GD-изображению
    • imagegd — Выводит GD-изображение в браузер или файл
    • imagegd2 — Выводит GD2-изображение в браузер или файл
    • imagegetclip — Получить отсекающий прямоугольник
    • imagegetinterpolation — Получает метод интерполяции
    • imagegif — Выводит изображение в браузер или записывает в файл
    • imagegrabscreen — Захватывает изображение с экрана
    • imagegrabwindow — Захватывает изображение окна
    • imageinterlace — Включает или выключает интерлейсинг
    • imageistruecolor — Определяет, относится ли изображение к изображениям truecolor
    • imagejpeg — Выводит изображение в браузер или записывает в файл
    • imagelayereffect — Устанавливает флаг альфа-смешивания, чтобы создать эффекты наложения изображений
    • imageline — Рисует отрезок
    • imageloadfont — Загружает новый шрифт
    • imageopenpolygon — Рисует открытый полигон
    • imagepalettecopy — Копирует палитру из одного изображения в другое
    • imagepalettetotruecolor — Преобразовывает изображение на основе палитры в настоящий цвет
    • imagepng — Выводит PNG-изображение в браузер или файл
    • imagepolygon — Рисует многоугольник
    • imagerectangle — Рисует прямоугольник
    • imageresolution — Получает или устанавливает разрешение изображения
    • imagerotate — Поворачивает изображение с заданным углом
    • imagesavealpha — Определяет, сохранять ли полную информацию альфа-канала при сохранении изображений
    • imagescale — Масштабировать изображение по заданной ширине и высоте
    • imagesetbrush — Устанавливает изображение кисти для рисования линий
    • imagesetclip — Устанавливает прямоугольник отсечения
    • imagesetinterpolation — Устанавливает метод интерполяции
    • imagesetpixel — Рисует точку
    • imagesetstyle — Устанавливает стиль рисования линий
    • imagesetthickness — Устанавливает толщину линий
    • imagesettile — Устанавливает изображение как элемент мозаичной заливки
    • imagestring — Рисует строку текста горизонтально
    • imagestringup — Рисует строку текста вертикально
    • imagesx — Получение ширины изображения
    • imagesy — Получение высоты изображения
    • imagetruecolortopalette — Преобразовывает truecolor-изображение в палитровое
    • imagettfbbox — Определяет границы прямоугольного обрамления для текста, который библиотека freetype2 выводит на экран путём рендеринга шрифта
    • imagettftext — Рисует текст на изображении шрифтом TrueType
    • imagetypes — Возвращает список типов изображений, поддерживаемых PHP сборкой
    • imagewbmp — Выводит изображение в браузер или записывает в файл
    • imagewebp — Вывод WebP-изображение в браузер или файл
    • imagexbm — Выводит XBM-изображение в браузер или в файл
    • iptcembed — Встраивание двоичных IPTC данных в JPEG изображение
    • iptcparse — Разбор двоичных IPTC данных на отдельные теги
    • jpeg2wbmp — Конвертирует изображение из формата JPEG в WBMP
    • png2wbmp — Преобразовывает PNG-файла в файл WBMP
  • GdImage — Класс GdImage
  • GdFont — Класс GdFont