#Crear una nueva instancia de Image Manager
public ImageManager::__construct(string|DriverInterface $driver, mixed ...$options): ImageManager
El image manager es el punto de partida para todas las operaciones. Con esta clase usted determina el driver a usar, las opciones de configuración y llama a los métodos necesarios para leer imágenes desde diferentes fuentes.
#Selección del driver
El driver determina qué biblioteca de imágenes de PHP se utiliza internamente. Intervention Image es una API universal para varias extensiones de imagen de bajo nivel en PHP y actualmente incluye dos drivers diferentes. Dependiendo de su instalación de PHP, deberá elegir uno de ellos.
#Driver para la biblioteca GD
GD se incluye por defecto en muchas instalaciones, pero tiene la desventaja de carecer de capacidades avanzadas de procesamiento de imágenes, como el soporte para distintos espacios de color. GD también descarta cualquier dato Exif en el proceso de codificación. El driver para GD está incluido por defecto.
Intervention\Image\Drivers\Gd\Driver
#Driver para Imagick
Imagick es una extensión de PHP que proporciona enlaces a la biblioteca ImageMagick, una herramienta de procesamiento de imágenes popular y potente. En mi experiencia, esta extensión suele ofrecer resultados de mayor calidad que GD. El driver está incluido por defecto.
Intervention\Image\Drivers\Imagick\Driver
#Driver para libvips
libvips es una biblioteca de procesamiento de imágenes rápida y de bajo consumo de memoria que supera a todas las demás bibliotecas de extensiones de imagen para PHP. El soporte para esta biblioteca de procesamiento está disponible a través del controlador oficial para usar Intervention Image con libvips, que puede instalarse adicionalmente.
Intervention\Image\Drivers\Vips\Driver
#Opciones de configuración
Opcionalmente, es posible pasar parámetros de configuración adicionales al constructor que determinan el comportamiento de la biblioteca.
Estos parámetros afectan cómo la biblioteca maneja la orientación de la imagen según los datos Exif, si las animaciones se decodifican o se descartan, y cuál es el color de fusión predeterminado.
#Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| driver | string or DriverInterface | Instancia del driver de Image Manager o nombre de la clase del driver |
| autoOrientation | bool | (opcional) Determina si la imagen debe alinearse automáticamente según los datos Exif. Predeterminado: true |
| decodeAnimation | bool | (opcional) Indica si una imagen posiblemente animada se decodifica como tal o si la animación se descarta. Predeterminado: true |
| blendingColor | mixed | (opcional) El color de fusión predeterminado. Predeterminado: ffffff |
| strip | bool | (opcional) Determina si los metadatos de la imagen deben eliminarse en el proceso de codificación. Predeterminado: false |
#Ejemplo
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
// Crear una nueva instancia de ImageManager con el Driver deseado y la configuración por defecto
$manager = new ImageManager(new Driver());
// Alternativamente crear una nueva instancia de ImageManager por nombre de clase y con la configuración por defecto
$manager = new ImageManager(Driver::class);
// Misma llamada con opciones de configuración
$manager = new ImageManager(
Driver::class,
autoOrientation: false,
decodeAnimation: true,
blendingColor: 'ff5500',
strip: false
);
#Crear una nueva instancia de Image Manager con métodos auxiliares estáticos
#Constructor estático
public static ImageManager::withDriver(string|DriverInterface $driver, mixed ...$options): ImageManager
El método auxiliar estático funciona de la misma manera que el constructor y acepta tanto el nombre de una clase como una instancia del driver y, opcionalmente, parámetros de configuración.
Consulte las opciones posibles de configuración.
#Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| driver | string or DriverInterface | Instancia del driver de Image Manager o nombre de la clase del driver |
| options | mixed | Parámetros de configuración opcionales |
#Ejemplo
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Imagick\Driver;
// Crear una nueva instancia de ImageManager con el Driver deseado
$manager = ImageManager::withDriver(new Driver());
// o crear una nueva instancia de ImageManager por nombre de clase
$manager = ImageManager::withDriver(Driver::class);
// Misma llamada con opciones de configuración
$manager = ImageManager::withDriver(
Driver::class,
autoOrientation: true,
decodeAnimation: true,
blendingColor: 'ff5500',
strip: true
);
#Constructor estático para GD
public static ImageManager::gd(mixed ...$options): ImageManager
Este método auxiliar estático para el driver GD crea una nueva instancia del Image Manager directamente, sin argumentos ni opciones de configuración.
Consulte las opciones posibles de configuración.
#Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| options | mixed | Parámetros de configuración opcionales |
#Ejemplo
use Intervention\Image\ImageManager;
// Crear un nuevo ImageManager con el driver gd
$manager = ImageManager::gd();
// Misma llamada con opciones de configuración
$manager = ImageManager::gd(autoOrientation: false);
#Constructor estático para Imagick
public static ImageManager::imagick(mixed ...$options): ImageManager
Este método auxiliar estático no toma argumentos y crea directamente una nueva instancia del Image Manager con el driver Imagick.
Consulte las opciones posibles de configuración.
#Parámetros
| Nombre | Tipo | Descripción |
|---|---|---|
| options | mixed | Parámetros de configuración opcionales |
#Ejemplo
use Intervention\Image\ImageManager;
// Crear un nuevo ImageManager con el driver imagick
$manager = ImageManager::imagick();
// Misma llamada con opciones de configuración
$manager = ImageManager::imagick(blendingColor: 'fff000');
#Acceder al driver del Image Manager
public ImageManager::driver(): DriverInterface
Como ya se describió, el Image Manager se crea con una instancia del driver como dependencia. Esta función garantiza que pueda accederse a él en un momento posterior.
#Ejemplo
use Intervention\Image\ImageManager;
use Intervention\Image\Drivers\Gd\Driver;
// Crear ImageManager con el Driver
$manager = new ImageManager(new Driver());
// Acceder al Driver desde ImageManager
$driver = $manager->driver();
Lea más sobre los diferentes métodos del image manager en la sección de instanciación