#Новые возможности
Intervention Image 3 полностью переписан с нуля — перенесено очень мало кода из предыдущей версии. Это означает более современную и продуманную архитектуру и API, использующие возможности PHP 8+. Ниже перечислены ключевые возможности, которые дополнительно улучшают библиотеку.
- Поддержка анимированных GIF с драйверами GD и Imagick
- Настраиваемый менеджер изображений
- Поддержка цветовых пространств
- Поддержка переноса текста в системе шрифтов
- Поддержка межстрочного интервала в системе шрифтов
- Объект для закодированных изображений
#Изменения в API
- canvas() теперь обрабатывается через create()
- circle() теперь обрабатывается через drawCircle()
- crop() всё ещё существует, но имеет новую сигнатуру
- ellipse() теперь обрабатывается через drawEllipse()
- line() заменён на drawLine()
- pixel() обрабатывается через drawPixel()
- encode() всё ещё существует, но имеет новую сигнатуру
- exif() теперь обрабатывается через exif() с другой сигнатурой
- fill() в настоящее время поддерживает только цветовые значения
- filter() теперь обрабатывается через modify()
- flip() всё ещё существует, но имеет новую сигнатуру и теперь разделён на flip() и flop()
- insert() заменён на place()
- make() заменён на read()
- mime() теперь поддерживается только у закодированного изображения
- pickColor() имеет другую сигнатуру без формата; чтение цвета теперь обрабатывается классом цвета
- polygon() обрабатывается через drawPolygon()
- rectangle() обрабатывается через drawRectangle()
- text() всё ещё существует, но имеет новую сигнатуру
- resizeCanvas() всё ещё существует, но имеет новую сигнатуру
- limitColors() обрабатывается через reduceColors
- trim() доступен начиная с версии
3.6, но работает иначе и автоматически удаляет области границы изображения с похожими цветами - getCore() заменён на core(), но ведёт себя совершенно иначе
- orientate() обрабатывается через orient() и применяется автоматически по умолчанию (настраивается)
- resize() всё ещё существует, но имеет другую сигнатуру без callback. Комбинации опций ограничений теперь обрабатываются иначе с помощью методов resizeDown(), scale() и scaleDown()
- widen() и heighten() заменены на вызов scale() и scaleDown() с указанием именованных аргументов
- fit() заменён на cover() и coverDown()
#Удалённые возможности
- interlace() больше не существует и обрабатывается через опции кодировщика.
- backup() и reset() больше не существуют, однако их функциональность можно получить с помощью встроенного клонирования объектов
- basepath() больше не существует
- cache() больше не существует
- filesize() больше не существует
- iptc() больше не существует
- mask() больше не существует
- opacity() больше не существует
- psrResponse() больше не существует
- response() больше не существует
- stream() больше не существует, но вы можете использовать toFilePointer()
- destroy() больше не существует, но вы можете использовать встроенные функции PHP, такие как unset, чтобы освободить память
#Другие изменения
-
Библиотека кэширования Intervention Image 2 не поддерживается новой версией.
-
Провайдеры сервисов для фреймворка Laravel были удалены, чтобы избежать зависимости от фреймворка и подчеркнуть, что Intervention Image независим от фреймворка, каким он и был всегда. Тем не менее, существует официальный пакет для интеграции с Laravel
-
Больше невозможно создавать изображения напрямую из URI. Данные сначала должны быть загружены с помощью специализированного HTTP-клиента, а затем переданы в библиотеку изображений. Intervention Image не отвечает за операции HTTP-клиента.
-
Больше нельзя передавать значения цвета в виде массива.
-
Если вы используете фреймворк Laravel и файл конфигурации, необходимо скорректировать опцию настройки
driver. В версии 2 драйвер задавался строкой, напримерgdилиimagick. В версии 3 это делается через имя класса драйвера, напримерIntervention\Image\Drivers\Imagick\DriverилиIntervention\Image\Drivers\Gd\Driver. Читайте подробности о конфигурации и Интеграция с Laravel