Ejemplo de uso básico de Imagick

  • Por
Descubrimos algunos ejemplos básicos para dar nuestros primeros pasos con Imagick.
Ya en el primer artículo mencionábamos que Imagick era muy sencillo de utilizar y que cambiará nuestro miedo a procesar o retocar imágenes con PHP.

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.

Autor

Sara Alvarez

Equipo DesarrolloWeb.com

Compartir