#Создание нового экземпляра Image Manager
public ImageManager::__construct(string|DriverInterface $driver, mixed ...$options): ImageManager
Менеджер изображений — отправная точка для всех операций. С помощью этого класса вы определяете используемый драйвер, параметры конфигурации и вызываете методы, необходимые для чтения изображений из разных источников.
#Выбор драйвера
Драйвер определяет, какая PHP-библиотека для работы с изображениями используется «под капотом». Intervention Image предоставляет универсальный API для различных низкоуровневых PHP-расширений для работы с изображениями и в настоящее время поставляется с двумя разными драйверами. В зависимости от вашей установки PHP вы выбираете один из них.
#Драйвер для библиотеки GD
GD по умолчанию включена во многих инсталляциях, но имеет недостаток — отсутствие продвинутых возможностей обработки изображений, таких как поддержка разных цветовых пространств. GD также отбрасывает любые данные Exif в процессе кодирования. Драйвер для GD включён по умолчанию.
Intervention\Image\Drivers\Gd\Driver
#Драйвер для Imagick
Imagick — это расширение PHP, предоставляющее привязки к библиотеке ImageMagick, популярному и мощному инструменту для обработки изображений. На практике это расширение часто даёт более качественные результаты, чем GD. Драйвер включён по умолчанию.
Intervention\Image\Drivers\Imagick\Driver
#Драйвер для libvips
libvips — быстрая и экономная по памяти библиотека для обработки изображений, превосходящая по производительности другие PHP-расширения для работы с изображениями. Поддержка этой библиотеки доступна через официальный драйвер для использования Intervention Image с libvips, который можно установить дополнительно.
Intervention\Image\Drivers\Vips\Driver
#Параметры конфигурации
При желании в конструктор можно передать дополнительные подробные параметры конфигурации, которые определяют поведение библиотеки.
Эти параметры влияют на то, как библиотека обрабатывает ориентацию изображения согласно Exif-данным, будут ли анимации декодироваться или отбрасываться, и какой будет цвет смешивания по умолчанию.
#Параметры
| Имя | Тип | Описание |
|---|---|---|
| driver | string or DriverInterface | Экземпляр драйвера Image Manager или имя класса драйвера |
| autoOrientation | bool | (необязательно) Решает, следует ли автоматически выравнивать изображение на основе Exif-данных. По умолчанию: true |
| decodeAnimation | bool | (необязательно) Будет ли потенциально анимированное изображение декодировано как анимация или анимация будет отброшена. По умолчанию: true |
| blendingColor | mixed | (необязательно) Цвет смешивания по умолчанию. По умолчанию: ffffff |
| strip | bool | (необязательно) Решает, следует ли удалять метаданные изображения в процессе кодирования. По умолчанию: false |
#Пример
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
// создать новый экземпляр менеджера с выбранным драйвером и конфигурацией по умолчанию
$manager = new ImageManager(new Driver());
// альтернативно создать новый экземпляр менеджера по имени класса и конфигурации по умолчанию
$manager = new ImageManager(Driver::class);
// тот же вызов с опциями конфигурации
$manager = new ImageManager(
Driver::class,
autoOrientation: false,
decodeAnimation: true,
blendingColor: 'ff5500',
strip: false
);
#Создание нового экземпляра Image Manager с помощью статических вспомогательных методов
#Статический конструктор
public static ImageManager::withDriver(string|DriverInterface $driver, mixed ...$options): ImageManager
Статический вспомогательный метод работает так же, как конструктор: он принимает либо имя класса драйвера, либо экземпляр драйвера и опционально параметры конфигурации.
См. возможные параметры конфигурации.
#Параметры
| Имя | Тип | Описание |
|---|---|---|
| driver | string or DriverInterface | Экземпляр драйвера Image Manager или имя класса драйвера |
| options | mixed | Необязательные параметры конфигурации |
#Пример
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
// создать новый экземпляр менеджера с выбранным драйвером
$manager = ImageManager::withDriver(new Driver());
// или создать новый менеджер по имени класса
$manager = ImageManager::withDriver(Driver::class);
// тот же вызов с опциями конфигурации
$manager = ImageManager::withDriver(
Driver::class,
autoOrientation: true,
decodeAnimation: true,
blendingColor: 'ff5500',
strip: true
);
#Статический конструктор драйвера GD
public static ImageManager::gd(mixed ...$options): ImageManager
Этот статический вспомогательный метод для драйвера GD создаёт новый экземпляр Image Manager, который можно вызывать без аргументов или с необязательными параметрами конфигурации.
См. возможные параметры конфигурации.
#Параметры
| Имя | Тип | Описание |
|---|---|---|
| options | mixed | Необязательные параметры конфигурации |
#Пример
use Intervention\Image\ImageManager;
// создать новый менеджер изображений с драйвером gd
$manager = ImageManager::gd();
// тот же вызов с опциями конфигурации
$manager = ImageManager::gd(autoOrientation: false);
#Статический конструктор драйвера Imagick
public static ImageManager::imagick(mixed ...$options): ImageManager
Этот статический вспомогательный метод не принимает аргументов и напрямую создаёт новый экземпляр Image Manager с драйвером Imagick.
См. возможные параметры конфигурации.
#Параметры
| Имя | Тип | Описание |
|---|---|---|
| options | mixed | Необязательные параметры конфигурации |
#Пример
use Intervention\Image\ImageManager;
// создать новый менеджер изображений с драйвером imagick
$manager = ImageManager::imagick();
// тот же вызов с опциями конфигурации
$manager = ImageManager::imagick(blendingColor: 'fff000');
#Доступ к драйверу Image Manager
public ImageManager::driver(): DriverInterface
Как уже было описано, Image Manager создаётся с экземпляром драйвера в качестве зависимости. Эта функция позволяет получить доступ к драйверу позднее.
#Пример
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
// создать менеджер изображений с драйвером
$manager = new ImageManager(new Driver());
// получить драйвер из менеджера изображений
$driver = $manager->driver();
Подробнее о различных методах менеджера изображений читайте в разделе об инстанцировании