Loading

08/02/2008
Proceso de imágenes desde la línea de comando
por +Joaquín Herrero a las 13:22 [ enlace a esta entrada ]

Las herramientas que tenemos desde línea de comandos para procesar fotografías son muy potentes, y permiten hacer modificaciones en un grupo de fotografías de forma automatizada.

Algunas de estas herramientas son:

convert: transforma una fotografía (resize, blur, crop, despeckle, dither, draw on, flio, join, re-sample, etc) creando una nueva imagen que será el resultado de la transformación

mogrify: igual que convert pero la imagen original es sobrescrita con los cambios

jhead: proceso de los datos EXIF que contiene la fotografía

jpegtran: para, entre otras cosas, codificar las fotos en formato JPEG progresivo.

Tanto "convert" como "mogrify" son parte del conjunto de utilidades denominadas ImageMagick, "jpegtran" es parte de las utilidades para procesar JPEG's que en algunos sistemas se instala en la instalación básica (en Ubuntu no), y "jhead" es una utilidad que se puede instalar independientemente.

En Ubuntu Linux:

# apt-get install ImageMagick
# apt-get install libjpeg-progs
# apt-get install jhead

En OpenBSD:

# pkg_add ImageMagick
# pkg_add jpeg
# pkg_add jhead

El uso más básico de jhead para visualizar los datos exit de la foto es muy simple: simplemente le pasamos como parámetro el fichero de la imagen.

$ jhead test.jpg 
File name    : test.jpg
File size    : 106697 bytes
File date    : 2008:02:08 12:31:21
Camera make  : OLYMPUS OPTICAL CO.,LTD
Camera model : C5050Z
Date/Time    : 2006:09:03 18:38:42
Resolution   : 800 x 571
Flash used   : No
Focal length :  7.1mm
Exposure time: 1.300 s 
Aperture     : f/1.8
ISO equiv.   : 400
Metering Mode: matrix
Exposure prog: shutter priority (semi-auto)
Jpeg process : Baseline

Y esta es la salida del mismo comando cuando la imagen no contiene datos EXIF:

$ jhead test.jpg 
File name    : test.jpg
File size    : 9155 bytes
File date    : 2008:02:08 12:44:31
Resolution   : 172 x 162

Algunas utilidades para transformar imágenes no respetan la cabecera EXIF, por lo que es una buena costumbre salvar la cabecera EXIF de la foto que vamos a procesar, hacer las transformaciones que queramos, y finalmente reinsertar la cabecera EXIF en la foto final.

Por ejemplo, si quisieramos usar mogrify para escalar nuestra imagen a 320x240 para usarla en una página web, o para subirla a Flickr, sin perder los datos EXIF, necesitaríamos usar este comando:

$ mogrify -resize 320 test.jpg

Nota que con especificar la anchura deseada (320), el comando calcula la altura que le corresponde sin deformar la foto.

Pero, ¿qué ocurre si nuestro mogrify (u otra utilidad) no conserva los datos EXIF? En este caso podemos usar este comando:

$ jhead -cmd "mogrify -resize 320 &i" *.jpg

que ordena a jhead sacar la cabecera EXIF de la fotografía, procesarla mediante el comando que aparezca en el parámetro "-cmd" (&i es el nombre de la foto), y finalmente reinsertar la cabecera EXIF antes de terminar.

Si en lugar de poner un comando en el parámetro "-cmd" usamos ahí un script que llame a mogrify y a jpegtran, podremos hacer todas las modificaciones que queramos manteniendo la cabecera EXIF de las fotos.

Con estos ingredientes se pueden hacer scripts que automaticen el reescalado de fotos, la inserción de comentarios, o cualquier otra transformación que deseemos.

enlace a esta entrada | categoría: /sistemas |

 

 

Creative Commons License

Otras entradas:

Últimos cursos

Categorías

powered by blosxom edited with vi powered by OpenBSD powered by perl powered by apache graphics by GIMP