Últimos artículos
Loading...
martes, 18 de agosto de 2009

Modificar imagenes por lotes (thumbnail, bordes) con imagemagick.

martes, agosto 18, 2009

Hoy vamos a explorar algunos comandos útiles de imagemagick para modificar imagenes por lotes, redimencionar, crear thumbnails, rotar y agregar bordes. Aunque existen alternativas gráficas para hacerlo vamos a hacerlo en un terminal y vean lo realmente fácil y potente  que es.

Empezamos:
Primero necesitamos instalar el paquete imagemagick antes verificamos si ya lo tenemos instalado en un terminal ejecutamos ~$ convert  si lo tenemos instalado nos va a mostrar todos los parametros que podemos usar. Si les dice que el comando no se encuentra procedemos a instalarlo desde nuestro gestor de paquetes preferido, si estan en alguna distribución basada en debian lo instalan ~$ sudo apt-get install imagemagick
Para los ejemplos solo vamos a usar el potente comando convert más información de los parametros que usa este comando lo pueden encontrar acá.

1. Cambiando de extensión a una imagen:
$ convert arbol.jpg arbol.png Convierte un JPEG a PNG
$ convert icon.gif icon.bmp  GIF a BMP
$ convert photo.tiff photo.pcx  TIFF  a PCX file
2. Redimencionando una imagen cambiando su nombre.
$convert -resize 500x500  arbol.jpg arbol-redimencionado.jpg Redimenciona la imagen a 500x500 px y renombra el archivo a arbol-redimencionado.jpg
$convert -sample 50%x50% arbol.jpg arbol-redimencionado.jpg Redimenciona la imagen al  50% del tamaño  y renombra el archivo a arbol-redimencionado.jpg

3. Agregando un texto a la imagen con una posición determinada.

BASH
 convert -fill black -pointsize 40 -font serif -draw 'text 10,100 "Texto en una imagen"' foto.jpg foto-con-texto.jpg  

 
4. Rotar una imagen
$ convert -rotate 70 foto.jpg foto-rotate.jpg
Rota una imagen con el parametro -rotate en este caso 70 grados.



5. Procesar imágenes por lotes.

En este ejemplo vamos no solo a usar el comando convert de imagemagick, sino tambien algunas funciones básicas de batch, asi que este script lo pueden ejecutar desde el terminal o lo pueden guardar en un archivo y luego ejecutarlo.
Nos ubicamos en la carpeta que contiene las imágenes.
Creamos una carpeta donde guardar los thumbnails.
$ mkdir thumbnails

Aca vamos a crear un blucle que nos lea el contenido de la carpeta actual, en este caso solo buscara archivos con extensión .png al encontrar va a ejecutar la acción que esta dentro de "do" convertir la imagen y mostrar un mensaje "converting imagen.png....".

BASH
 for picture in `ls *.png`

do

echo "converting $picture"

convert -resize 200x200 $picture thumbnails/small-$picture

done

Pero esto solo es el principio, si estan más interesados simplemente visiten la web del proyecto y vean lo sumamente potente que es esta librería.

Agregado: 

Ahora creamos un script para redimencionar una imagen, a su vez agregar una marca de agua:

BASH
 for picture in `ls *.jpg`

do

echo "converting $picture"

convert -resize "520x1000>" $picture $picture

composite -gravity SouthEast /larutaatuimagen/watermark.png $picture $picture

done

Esto nos redimenciona con un watermark dandole el parametro SouthEast(sureste--abajo a la izquierda) dibuja la marca de agua sobre la imagen.

0 Comentarios:

Publicar un comentario

 
Toggle Footer