#Nuevas características
Intervention Image 3 se ha reescrito desde cero con muy poco código heredado de la versión anterior. Esto implica una arquitectura y una API más modernas y sofisticadas que aprovechan las funcionalidades modernas de PHP 8+. Hay algunas características clave que mejoran aún más la biblioteca.
- Soporte para GIF animados con los drivers GD e Imagick
- Administrador de imágenes configurable
- Soporte para espacios de color
- Soporte para ajuste de texto en el sistema de fuentes
- Soporte para la altura de línea en el sistema de fuentes
- Objeto para imágenes codificadas
#Cambios en la API
- canvas() ahora se gestiona mediante create()
- circle() ahora se gestiona mediante drawCircle()
- crop() todavía existe pero tiene una nueva firma
- ellipse() ahora se gestiona mediante drawEllipse()
- line() ha sido reemplazado por drawLine()
- pixel() se gestiona mediante drawPixel()
- encode() todavía existe pero tiene una nueva firma
- exif() ahora se gestiona mediante exif() con una firma diferente
- fill() actualmente solo admite valores de color
- filter() ahora se gestiona mediante modify()
- flip() todavía existe pero tiene una nueva firma y se gestiona mediante flip() y flop()
- insert() ha sido reemplazado por place()
- make() ha sido reemplazado por read()
- mime() ahora solo se gestiona mediante una imagen codificada
- pickColor() tiene una firma diferente sin formato y ahora lo gestiona la clase de color
- polygon() se gestiona mediante drawPolygon()
- rectangle() se gestiona mediante drawRectangle()
- text() todavía existe pero tiene una nueva firma
- resizeCanvas() todavía existe pero tiene una nueva firma
- limitColors() se gestiona mediante reduceColors
- trim() existe desde la versión
3.6, pero funciona de manera diferente y elimina automáticamente las áreas del borde de la imagen con colores similares - getCore() se reemplaza por core() pero se comporta de forma completamente diferente
- orientate() se gestiona mediante orient() y se aplica automáticamente por defecto (configurable)
- resize() todavía existe pero tiene una firma diferente sin un callback. Las combinaciones de opciones de restricción se gestionan de forma distinta mediante los siguientes métodos resizeDown(), scale() y scaleDown()
- widen() y heighten() se reemplazan llamando a scale() y scaleDown() con argumentos con nombre
- fit() se reemplaza por cover() y coverDown()
#Funcionalidades eliminadas
- interlace() ya no existe y se gestiona mediante las opciones del codificador.
- backup() y reset() ya no existen, pero la funcionalidad puede lograrse con la clonación nativa de objetos
- basepath() ya no existe
- cache() ya no existe
- filesize() ya no existe
- iptc() ya no existe
- mask() ya no existe
- opacity() ya no existe
- psrResponse() ya no existe
- response() ya no existe
- stream() ya no existe, pero puede usar toFilePointer()
- destroy() ya no existe, pero puede usar las funciones propias de PHP, como unset, para liberar memoria
#Otros cambios
-
La biblioteca de caché de Intervention Image 2 no es compatible con la nueva versión.
-
Los service providers para el framework Laravel se eliminaron para evitar una dependencia del framework y para destacar que Intervention Image es, como siempre fue, agnóstico respecto al framework. Sin embargo, existe un paquete oficial para la integración con Laravel
-
Ya no es posible crear imágenes directamente a partir de una URI. Los datos deben primero cargarse mediante un cliente HTTP dedicado y luego pasarse a la biblioteca de imágenes. Intervention Image no se encarga de las operaciones del cliente HTTP.
-
Ya no es posible pasar valores de color como array.
-
Si utiliza el framework Laravel y un archivo de configuración, es necesario ajustar la opción de configuración
driver. En la versión 2, el driver se configuraba mediante una cadena comogdoimagick. En la versión 3, esto se hace mediante el nombre de la clase del driver, por ejemploIntervention\Image\Drivers\Imagick\DriveroIntervention\Image\Drivers\Gd\Driver. Lea más detalles sobre la configuración y la Integración con Laravel