Categories
fotos linux zaragoza

Añadir marco descriptivo con datos EXIF a las fotos

Alguna vez he visto fotos con un marco negro, describiendo en su interior distintos parámetros de como estaba configurada la cámara al hacer una foto. Desde que sigo el blog de MiguelDaza y que aprendo poco a poco algo de fotografía, me había entrado la curiosidad de saber como lo podía hacer. Buscando en su blog solo encontré el inicio de su uso, pero no como lo hacía.

Buscando por internet vi que la gente lo hacía con el photoshop, pero no me apetece andar con programas pesados y encima piratearlos (eso sin contar que encima uso linux). Así que buscando una alternativa, me he hecho un script shell (consola de linux) que obtiene como resultado una foto como la de este post.

El código está en un archivo llamado marco_foto.sh y es el siguiente:

#!/bin/bash

#Comprobaciones de parámetros
if [ $# != 3 ] ; then
echo "Modo de uso: marco_foto.sh foto.jpg 20 \"comentario\""
echo "foto.jpg -> nombre de la foto"
echo "20 -> tamaño de la letra"
echo "\"comentario\" -> comentario de la foto"
exit 1
fi

if ! test -r "$1" ; then
echo "Error al leer el archivo: $1"
exit 2
fi

if [ $2 -gt 3 -a $2 -lt 100 ] ; then
SIZE=$2
else
echo "El tamaño de la fuente \"$2\" está fuera del rango permitido (3-100)."
exit 3
fi

# Extracción de los datos
TIME=$(exiftool -s -s -s -ExposureTime            "$1")
MM=$(exiftool   -s -s -s -FocalLength          "$1")
ISO=$(exiftool  -s -s -s -ISO                     "$1")
FF=$(exiftool   -s -s -s -FNumber                 "$1")

# Extracción del nombre
LONG1=`echo "$1" | wc -c`
LONG2=`expr $LONG1 \- 5`
NOMBRE=`echo "$1" | cut -c -${LONG2}`

# Generación y adición de los datos
montage  -geometry +0+0  \
-pointsize $SIZE  \
-background black \
-fill white       \
-label "ISO $ISO \| f\/$FF \| $TIME s \| $MM \n $3" \
"$1" "${NOMBRE}_con_marco.jpg"

Antes de ejecutarlo hay que asegurarse de tener instalado el paquete imagemagick y exiftool. Y para usarlo ejecutarlo de la siguiente forma:

sh marco_foto.sh flor_peluche.jpg 25 “Flor de peluche”

El primer parámetro es el nombre de la foto, el segundo el tamaño de la letra y el último el comentario que queramos introducir.

Actualización 07-07-2008: a raíz de un hilo en una lista de correo (thanks Floyd), me han sugerido modificar el script, por lo que lo actualizo con unas mejoras. Para los que quieran, pueden echar un vistazo al antiguo.

7 replies on “Añadir marco descriptivo con datos EXIF a las fotos”

Dios!!!, no entiendo nada de programación y tal. Yo lo hago manualmente con el Paint Shop Pro, vamos con un programa de retoque fotográfico a mano totalmente mirando los datos exif de cada foto. Entiendo que con lo tuyo se genera automáticamente pues no?. Saludos.

[Responder]

La verdad es que para gente que no conozca mucho linux y la consola puede parecer lioso. De todos modos tengo un proyecto para realizar una aplicación de proceso de fotografías que ayude a realizar cierto tipo de operaciones, y una sería esta.
La generación de la banda negra con todos los datos es automática, se extraen todos los parámetros de los campos exif de la foto. Yo pensaba que usabas algún programa para añadirlos, no sabía que lo hicieses a mano.

[Responder]

Pero para alguien que quiera descargar la imagen se encontrará con el puto marco de las narices.

A mi, personalmente, me parece estúpido el marco, y solo sirve para aparentar. Aparentar, además, pocos conocimientos y a ojos del novato, pues si tienes la foto en flickr, o cualquier otro sistema de fotos, éste se encargará de mostrarte toda esta información y más.

En el supuesto caso de querer incorporar un marco, yo lo implementaría con js+css en el lado cliente, para no fastidiar la foto.

[Responder]

Leave a Reply

Your email address will not be published. Required fields are marked *