Descubrimos algunos ejemplos básicos para dar nuestros primeros pasos con Imagick.
Bien, pues hoy vamos a ver lo sencillo que es hacer, por ejemplo, una miniatura.
Comenzaremos por algo muy básico, que es justamente crear una miniatura a partir de una imagen que ya tenemos en nuestro servidor.
Para ello tan sólo necesitamos las siguientes líneas en PHP:
<?php
$imagen= new Imagick('imagen.jpg');
$imagen->thumbnailImage(100,0);
echo $imagen;
?>
En estas líneas lo que hemos hecho es lo siguiente:
Primero hemos creado el objeto imagen, pasándole la imagen original.
Y a continuación hemos creado la miniatura con thumbnailImage (100,0).
Lo que hay entre los paréntesis son las dimensiones de la miniatura, teniendo siempre presente que si es 0 una de las dos (alto o ancho), quiere decir que queremos que guarde las proporciones.
Cómo veis es bastante sencillo y es una práctica muy habitual hoy en día.
Pero esto no es todo, además podemos crear miniaturas de todo un directorio con unas pocas líneas más:
<?php
$imágenes=new Imagick(glob('imagenes/*.JPG'));
foreach($imágenes as $imagen){
$imagen->thumbnailImage(1024,0);
}
$imágenes->writeImages();
?>
Con este código lo que estamos haciendo es lo siguiente:
Creamos el objeto imágenes que va a contener todas las imágenes de la carpeta "imagenes" que tengan extensión .jpg.
A continuación implementamos un bucle para ir creando una a una las miniaturas de dichas imágenes.
Y terminamos escribiendo todas las imágenes.
Cómo estáis pudiendo comprobar, Imagick es bastante potente y nos permite trabajar con imágenes de una forma bastante rápida y sencilla.
Para terminar con estos ejemplos sencillos, vamos a ver como podemos redimensionar un GIF animado.
Antes de continuar, tenemos que comentar que, al ser un GIF animado, consta de varios fotogramas y que tenemos que redimensionar cada fotograma para poder hacer lo propio con el GIF animado.
Como hemos realizado hasta el momento, vamos a colocar el código y a continuación lo comentamos.
<?php
//Crear un nuevo objeto imagick y leemos el GIF
$im = new Imagick("ejemplo.gif");
//Redimensionamos todos los fotogramas
foreach($im as $fotograma){
$fotograma->thumbnailImage(50,50);
//Establecemos un lienzo virtual para corregir el tamaño
$fotograma->setImagePage(50,50,0,0);
}
$im->writeImages("example_small.gif",true);
?>
Bien, este ejemplo es algo más complejo, pero si os fijáis, los primeros pasos son siempre los mismos.
Creamos el nuevo objeto con el que vamos a trabajar. A continuación hacemos un bucle y es aquí donde vemos las cosas nuevas.
Primero creamos la miniatura de cada fotograma y después establecemos lienzos virtuales para por último y ya fuera del bucle, crear nuestro nuevo GIF animado ya con los nuevos tamaños.
En el siguiente artículo veremos como hacer algo más complicado, daremos efecto espejo a una imagen con Imagick.