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

- Установка и настройка
  - Требования
  - Установка
  - Настройка во время выполнения
  - Типы ресурсов
- Предопределённые константы
- Примеры
  - Создаёт PNG-изображение средствами PHP
  - Добавление водяных знаков на изображения через альфа-каналы
  - Создание полупрозрачного водяного знака функцией imagecopymerge
- Функции 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

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open