Vous êtes sur la page 1sur 5

LINUX USER ImageMagick

Procesado de imgenes en la consola

PXEL PERFECTO

Timbec, photocase.com

GIMP no es la nica opcin para la manipulacin de fotos. ImageMagick, una coleccin de programas de la lnea de comandos para el procesamiento de imgenes, puede ayudarnos a procesar un lote de fotos de una sola pasada. POR TIM SCHRMANN

as vacaciones han acabado y nuestra nueva cmara digital est atestada hasta arriba. Antes de crear una galera de fotos en nuestra pgina web necesitaremos clasificarlas y reunir-

las. Normalmente arrancaramos GIMP, abriramos una foto, la procesaramos, definiramos su tamao y al final la guardaramos,

repitiendo todo el proceso hasta tener todas nuestras fotos clasificadas. Este

Tareas Tpicas
El programa ImageMagick est especialmente indicado para los siguientes tipos de tareas: Conversin de fotos a distintos formatos de imagen Cambiar el tamao de la imagen Rotar, escalar y cortar secciones con una precisin de pxel Usar filtros y efectos Creacin de animaciones para la web Creacin de imgenes simples usando formas geomtricas bsicas o copiando y pegando pequeos fragmentos de grficos Generacin de thumbnails y marcos Unir distintos dibujos o fotos (por ejemplo, un pster, collage o una galera fotogrfica) Figura 1: Pulsando con el botn izquierdo del ratn sobre la foto abrimos el men; la ventana reducida ayuda a navegar en imgenes sobredimensionadas.

72

Nmero 39

WWW.LINUX- MAGAZINE.ES

ImageMagick LINUX USER

Figura 3: Para ver informacin ms detallada acerca de nuestra foto, incluyendo resolucin, color y tamao. Figura 2: El comando display crea una perspectiva de las fotos que no se han abierto an.

mtodo podra llevarnos horas de nuestro tiempo libre. Afortunadamente, ImageMagick incluye una coleccin de herramientas de la lnea de comandos para nuestras imgenes. Podemos acceder a ellas casi exclusivamente desde la consola y nos permite procesar un paquete de imgenes fcilmente como si de una linea de ensamblaje se tratara. Por ejemplo, aadir un marco a cada una de nuestras 451 fotos solamente requiere un nico comando.

Saldos
En primer lugar, el programa display puede ayudarnos a clasificar todas nuestras imgenes (Figura 1). El comando display *.jpg, por ejemplo, presenta todas

las imgenes JPG en el directorio actual. Pulsando la barra espaciadora nos moveremos desde una imagen a la siguiente. Podemos generar una perspectiva de nuestras fotos actuales (Figura 2) mediante el comando display vid:*.jpg, que tambin podemos salvar pulsando Ctrl + S. El comando identify imagen.jpg nos da informacin ms detallada de la foto (Figura 3), incluyendo alguna informacin un tanto crptica. El ejemplo mostrado en la Figura 3 concierne a un fichero JPEG con una resolucin de 3264x2448 pxeles, donde cada canal de color contiene 8 bits de informacin de color. Usando tres canales de color (rojo, verde y azul) da como resultado una profundidad de color de 24 bits. El ltimo valor suministra informa-

cin acerca del tamao del fichero. La informacin Exif oculta en muchas fotos la obtenemos a travs del parmetro -verbose:
$ identify -verbose image.jpg

Despus de haber determinado las fotos que no deseamos y de borrarlas, ha llegado el momento de preparar las que nos quedan para nuestra web. Las cmaras normalmente generan fotos en formato JPEG, el cual tiene una seria desventaja. Para conseguir una compresin alta, JPEG tiende a eliminar informacin de la imagen por todas partes, lo cual se hace evidente tan pronto como comenzamos a aplicar filtros y efectos. Estos cambios pueden dejar artefactos no deseados en la imagen. Si an as deseamos procesar las fotos de nues-

Figura 4: El efecto de solarizacin genera una imagen en negativo. Los beneficios prcticos de la mayora de los filtros son un tanto limitados

Figura 5: aunque los resultados finales pueden quedar bastante bien. En este ejemplo, el efecto remolino mete la imagen en una batidora.

WWW.LINUX- MAGAZINE.ES

Nmero 39

73

LINUX USER ImageMagick

tras vacaciones, deberemos convertirlas primero a un formato no comprimido. Por ejemplo, los fotgrafos prefieren el formato TIFF, que est generado por el comando convert imagen.tiff.

Filtros
Determinado nmero de efectos y filtros pueden cambiar o realzar nuestras imgenes. En muchos casos es til el filtro sharpen (realzar):
convert -sharpen 6 imagen.tiff U scharf.tiff

Conversin de Ficheros
Si disponemos de un nmero elevado de ficheros, el comando de la shell que sigue nos ayudar a convertirlos de una sola vez:
$ for i in *.jpg; do convert U $i $(basename $i .jpg).tiff; U done

En cada fichero que acaba en .jpg, la shell elimina el final del nombre del fichero, lo reemplaza por .tiff, y llama a convert con los resultados.

Extensiones de Ficheros
Al igual que todos sus compaeros en el paquete ImageMagick, convert detecta independientemente el formato del fichero por su extensin. Cada aplicacin sabe automticamente que una foto denominada image.jpg es una foto JPEG. Si el fichero convertido necesita un final extico por alguna razn, por ejemplo, exot.exo, simplemente colocamos el formato al comienzo del nombre del fichero:
$ convert imagen.jpg U TIFF:exot.exo

El nmero que sigue al parmetro -sharpen indica la fuerza del efecto del filtro. Usando Figura 6: Aqu puedes ver a Tux flotando sobre la foto como un convert, rpidamente logo, aunque resulta un poco grande podremos aclarar fotos que estn muy oscurecidas: Este comando extrae el canal rojo en la imagen y convierte los valores de inten$ convert sidad a una escala de grises en la imagen imagen.tiff final.
-sigmoidalU -contrast 4,0% U imagen-clara.tiff

Efectos Divertidos
Adems de estos efectos bsicos, existen unos cuantos efectos divertidos. Para convertir un foto a un dibujo a carboncillo haramos:
$ convert imagen.tiff U - charcoal 5 U imagen-carboncillo.tiff

Si una imagen no transmite realmente la atmsfera que esperbamos, deberamos intentar convertirla a blanco y negro:
$ convert imagen.tiff U colorspace gray U blanco-negro.tiff

Vueltas y Vueltas
El comando mogrify junto con el parmetro -rotate rota las imgenes situadas de lado a una posicin vertical. Con el siguiente comando podremos rotar nuestras imgenes:
$ mogrify -rotate 90> U imagen.tiff rotado.tiff

Sin embargo, los resultados de este tipo de conversiones pueden resultar bastante aburridos en algunos casos.

Canales de Color
Si ocurre esto, un truco muy popular es usar un canal de color:
$ convert imagen.tiff U -channel R U -separate blanco-negro.tiff

El valor detrs de -charcoal determina la oscuridad del lpiz de carboncillo. El parmetro -solarize (Figura 4) produce un negativo, con -swirl se genera una espiral (Figura 5), y -implode implosiona una imagen.

Filigranas y Marcas de Agua


Antes de cargar los resultados finales en nuestra web deberamos invertir un poco ms de trabajo en prevenir que cualquier merodeador pueda robarnos nuestras

Este comando rota imagen.tiff 90 grados en sentido contrario a las agujas del reloj. Obsrvese que necesitamos las comillas; de lo contrario, la shell interpretara el smbolo mayor que (>) como una redireccin y borrara imagen.tiff.

Listado 1: Convert
01 $ convert -font @/home/tim/fonts/font.ttf -pointsize 20 -fill black draw text 100, 150 Vacaciones en la montaa imagen.tiff pie.tiff

Consejo
En vez del nombre del fichero, tambin podemos usar el nombre de la fuente, por ejemplo, Courier.

Listado 2: Aadir un Marco


01 $ convert -font @/home/tim/fonts/font.ttf -pointsize 20 -fill red -stroke black -strokewidth 3 -draw text 100,150 Vacaciones en la montaa imagen.jpg pie.tiff .

74

Nmero 39

WWW.LINUX- MAGAZINE.ES

ImageMagick LINUX USER

imgenes. Para ello les, aplicaremos una marca de agua. Para aplicarla, creamos primero un logo y lo situamos, por ejemplo, en la esquina superior izquierda:
$ composite -geometry +100+100 U logo.png foto.tiff U foto_logo.tiff

Este comando copia la imagen de logo.png a la posicin (100, 100) en la imagen foto.tiff y sita los resultados en el fichero foto_logo.tiff (Figura 6). Un logo insertado de esta manera indica efectivamente el origen de la imagen; sin embargo, esto no parece una marca de agua tpica. El parmetro -watermark se cre especficamente para ocuparse de este problema:
$ composite -watermark 30% U - gravity south logo.png U foto.tiff marca-de-agua.tiff

En l, el porcentaje indica lo visible que debera ser la marca de agua. El comando composite no slo integra logos y marcas de agua, sino que crea collages fcilmente. Por ejemplo, podramos aadir una flecha desde una foto que tiene un pequeo refugio para esquiadores en el fondo a otra foto del refugio. Tambin puede ser una buena idea aadir un pie de foto.

Pie de Fotos
Un pie de foto puede indicar el lugar preciso en el que fue tomada o quin es la gente que aparece en ella. Para aadirlos necesitaremos primero un fichero con la fuente que deseamos usar, preferiblemente en un formato TrueType (acabado en .ttf).

En KDE y Gnome se realizan bsquedas para las fuentes usando motores de bsqueda como Tracker o Beagle. En este momento podemos volver a usar convert de nuevo, el cual se pasa detrs de -font, donde se localiza la fuente. El Listado 1 muestra el un tanto largo, Figura 7: La opcin -polaroid permite crear imgenes que parecen haber aunque comsido tomadas con una cmara Polaroid. pleto, Jugando con los Bordes comando. El smbolo @ antes del nombre de Si nos gusta decorar nuestros lbumes de fichero le dice a convert que est tratando fotos, podemos colocar marcos alrededor con una fuente True-Type. El resto del de las imgenes fcilmente con lo comando coloca el texto Vacaciones en la siguiente: montaa (-draw) en la posicin (100, 150) en negro, con un tamao de puntos $ convert -bordercolor blue U de 20 pxeles (-pointsize 20), en la fuente -border 10x10 imagen.tiff U font.ttf. Introducimos el nombre del color marco.tiff en ingls despus de -fill, por ejemplo, red, o bien los valores RGB corresponEl comando genera una imagen con un dientes directamente. En el segundo caso borde (-border) con una anchura de seleccionamos entre anotaciones decima10x10 pxels. El color de este borde se les, por ejemplo, rgb(255,0,0,) o hexadeespecifica con el parmetro bordercolor, cimales, #FF0000, que ya debemos azul en este ejemplo. conocer por programacin HTML. La opcin adicional polaroid curva la En ambos casos deberamos ver el imagen de manera que parece una foto color rojo. El comando convert -list color que se ha pegado y que tiene ligeras lista todos los nombres de los colores ondas (Figura 7): conocidos y sus valores RGB.

Marcos de Texto
sta no es una lista de todo lo que ImageMagick puede hacer con texto. Por ejemplo, podemos aadir tambin un marco alrededor del texto y rellenarlo de verde usando el parmetro -stroke para el borde y -stroke width para establecer el grosor de este borde (Listado 2).

$ convert -bordercolor snow U -background black +polaroid U imagen.tiff foto-polaroid.tiff

Tabla 1: Visin del Programa


Programa convert: Funcin Convierte la imagen original a otro formato; en el proceso, los filtros o efectos usados se aplican solamente a la imagen resultante. Cambia la imagen directamente, a diferencia de convert. Reviste mltiples imgenes. Combina imgenes en un pster, panorama o en una perspectiva. Crea capturas de pantalla. Proporciona informacin sobre un fichero imagen. Muestra imgenes en una ventana. Ejecuta una animacin.

mogrify: composite: montage: import: identify: display: animate:

Para crear un filo con efecto tridimensional configuramos el parmetro -frame, el cual tambin aade un borde a la imagen, aunque permite un ajuste ms fino que -border. Con la opcin -mattercolor

Consejo
Algunos parmetros se usan por ms de una herramienta de ImageMagick. Esto significa que composite produce texto usando los mismos procesos que convert, por ejemplo.

WWW.LINUX- MAGAZINE.ES

Nmero 39

75

LINUX USER ImageMagick

podemos establecer el color del filo. Por ejemplo:


$ convert -mattercolor peru U -frame 9x9+3+3 imagen.tiff U imagen-con-3D-bordmen.tiff

salvan espacio de una sola vez:


$ for i inU *.tiff; do U convert U $i -resize U 800x600 U $(basename U $i.tiff).png;U done

Los nmeros tras el smbolo + determinan la anchura del borde interior y exterior de la imagen.

El comando reduce el tamao de las imgenes a una amigable con el monitor de 800x600 pxeles, Figura 9: La opcin montage crea esta perspectiva y tambin reduce convirtindolas automticamente las fotos. simultneamente tambin a un econmico formato PNG. pequeas previsualizaciones de imgenes que representan la foto corresponThumbnails diente cuando se pulsa sobre ellas. PodeLos futuros visitantes de nuestra web mos crear un directorio visual usando posiblemente no querrn ver todas nuesconvert vid:*.png midir.vid, cuyos resul$ convert -resize 200x200 U tras fotos, por lo que les ser de gran tados se abren con display midir.vid. Para foto.tiff mini-foto.png ayuda una previsualizacin (thumbnail). ver una foto abrimos el men de contexto sta tambin es til cuando deseamos y seleccionamos Load. Con el comando Este comando reduce la foto a un tamao imprimir cualquiera de nuestras imgenes de 200x200 pxeles, o al menos lo intenta. al permitir localizarlas ms fcilmente. convert vid:*.png U Para evitar distorsiones, convert lo limita La recopilacin de todas las fotos se HTML:index.html slo a las dimensiones especificadas. Una realiza con la opcin montage, que, de imagen que tena originariamente hecho, prefiere trabajar con thumbnails: el directorio visual puede generar una 3264x2448 pxeles acab en 320x100. Si pgina de previsualizacin completa para es imprescindible que la imagen mida $ montage -label nuestra web, resultando en mltiples 200x200 pxeles, incluso aunque corra%f *.png U ficheros. mos el riesgo de deformarla (Figura 8), -frame 5 index.png contiene la vista grfica colocaremos un signo de exclamacin overview.png actual y index.html la enlaza y notifica al detrs del tamao: navegador qu foto est detrs de la imaEste comando aade un gen previsualizada. $ convert -resize borde a cada previsualiPara trabajar apropiadamente coloca200x200! U zacin de imagen, mos ambos ficheros juntos con las fotos foto.tiff escribe el nombre del correctas en el servidor web. Tan pronto mini-foto.png fichero en la parte infecomo los visitantes soliciten index.html, rior (-label %f) y empavern todas las fotos disponibles. PulAlternativamente, queta los aspirantes en el sando sobre una de las previsualizaciopodemos trabajar con fichero overview.png. El nes de las imgenes se carga la foto a su porcentajes. El ejemplo resultado es un gran pstamao actual en el navegador. que sigue reduce un ter como el que se muesConclusin 75% el tamao original: Figura 8: La casa ha sido reducida tra en la Figura 9. a 200x200 pxeles. Las herramientas disponibles en el Ha Nacido una $ convert -resize paquete ImageMagick usan una sintaxis Estrella 75% bastante crptica a la que cuesta acostumfoto.tiff U Debera ser posible obtener la foto combrarse, aunque la curva de aprendizaje mini-foto.png pleta al pulsar sobre la imagen previa en merece la pena si tenemos que manipular nuestra web. Esta tarea no supone ninun elevado nmero de imgenes. AdeLa shell siguiente puede ayudarnos a gn problema para ImageMagick, incluso ms, los scripts de la shell ofrecen opcioconvertir fcilmente todas las fotos de si se desva ligeramente usando directones casi ilimitadas para la automatizaI nuestras vacaciones en thumbnails que rios visuales. Estos directorios contienen cin. Una vez que tengamos los efectos deseados procesamos las fotos para publicarlas online. En primer lugar deberamos escalar su tamao un poco. Las imgenes gigantes con una resolucin de 3264x2448 pxeles slo muestran una pequea esquina en la mayora de los monitores, adems se comen innecesariamente todo el espacio en disco. Si deseamos disminuir el peso extra usaremos la opcin -resize:

La Increble Foto Menguante

76

Nmero 39

WWW.LINUX- MAGAZINE.ES

Vous aimerez peut-être aussi