Autor Tema: Script Linux para añadir EXIF a fotos escaneadas  (Leído 5201 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Script Linux para añadir EXIF a fotos escaneadas
« en: 03:17:30 del 27 de Abril del 2013 »
No se muy bien si este es el sitio para este tema, si no lo es por favor, movedlo o avisadme para quitarlo.

Estoy escaneando mi primer carrete revelado, y viniendo del mundo digital estoy muy acostumbrado a ver los datos EXIF de mis fotos, así que le he dado un par de vueltas a un pequeño script para añadir datos EXIF a las fotos que escaneo. Es para usar en Linux, no se si en Mac funcionaría o habría que hacer algún cambio.

Su uso es muy sencillo: se ejecuta pasando como parámetro la imagen a la que se quieren añadir los datos. Los datos los lee de un fichero (por defecto exifdata.txt, pero se puede pasar como segundo parámetro otra ruta); este fichero consiste en líneas del tipo Dato=Valor, por ejemplo, Make=Olympus, más abajo pongo un ejemplo.

El script hace uso de la herramienta exiftool, que se puede instalar en cualquier distribución porque suele estar en todos los repositorios.

Con este script es muy sencillo añadir de una tacada a todas las fotos de un carrete datos como la cámara, el proceso de revelado... y así tendremos esos datos en cualquier sitio que la subamos o almacenemos.

El script:

Código: [Seleccionar]
#!/bin/bash

function usagemsg {
        echo -e "Uso: addexif.sh <imagen> [datos exif]\n"
        echo -e "Es necesario pasar como parámetro un archivo de imagen.\n"
        echo -e "El archivo de datos exif por defecto es './exifdata.txt'"
        echo -e
}

echo "[`date`]" > ./exifdata.log

command -v exiftool >/dev/null 2>&1 || { echo >&2 "Es necesario tener instalado exiftool"; exit 1; }

bashversion=`echo $BASH_VERSINFO`

if [ $bashversion -lt 4 ]; then
    echo -e "Error: es necesario Bash 4.x o superior\n"
    exit 1
fi

if [ $# -lt 1 ]; then
    echo -e "Error: Debes indicar un archivo\n"
    usagemsg
    exit 1
fi

if [ ! -f "$1" ]; then
    echo -e "Error: No existe $1\n"
    usagemsg
    exit 1
fi

if [ $# -lt 2 ]; then
    datafile="exifdata.txt"
else
    datafile="$2"
fi

if [ ! -f $datafile ]; then
    echo -e "Error: No existe $datafile\n"
    usagemsg
    exit 1
fi

declare -A exifdata

while read line
do
        key=`echo $line | awk -F":" '{print $1}'`
        val=`echo $line | awk -F":" '{print $2}'`

        exifdata[$key]="$val"

done < $datafile

for data in "${!exifdata[@]}"; do
       exiftool -overwrite_original_in_place -preserve -$data="${exifdata["$data"]}" $1 >>./exifdata.log 2>&1
       if [ $? -eq 0 ]; then
           echo -e "Actualizado $data en $1 (${exifdata["$data"]})"
       fi
done

Simplemente copiar y pegar.

Un ejemplo de archivo de datos. Se pueden poner todos los datos que se quiera, por ejemplo, para añadir los datos de exposición (si los hemos anotado) y ajustar la fecha de la toma (y no la del escaneo):

Código: [Seleccionar]
Make=Yashica
Model=Yashica MG-1
DateTimeOriginal=2013:04:06 17:23:24
Description=Film Kodak Tmax 100 Developed with Rodinal R09 One Shot 1+25 for 5:30 minutes, continuous agitation for the first minute, and then tilt 10 seconds every minute
ApertureValue=4
ExposureTime=1/125
ISO=100
FocalLength=45mm
LensManufacturer=Yashica
LensModel=Yashinon 45mm 1/2.8
Lens=Yashica Yashinon 45mm 1/2.8

Y ya simplemente es ejecutar el script, por ejemplo:

Código: [Seleccionar]
./addexif.sh imagen1.jpg archivo_datos_exif.txt
De esta forma tendremos las fotos con toda la información incrustada, y los programas podrán reconocerla y mostrarla. También, si subimos las fotos a internet, tendremos estos datos (por ejemplo, una mía en Flickr con todos los datos visibles: http://www.flickr.com/photos/aremesal/8683967603/#in/photostream)

El motivo de usar un archivo aparte para los datos es que si tenemos en un directorio todas las fotos de un carrete podamos poner los datos comunes a todas las fotos (cámara, ISO, proceso de revelado...) y con un solo comando actualizar todas de golpe.

Es una primera versión, así que aportes, críticas o errores son bienvenidos :)
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #1 en: 05:14:30 del 27 de Abril del 2013 »
Hay un programita libre llamado reveal que es maravilloso para eso y te lo recomiendo, es el que uso yo precisamente para eso que comentas. Lo uso en Mac, ni idea si lo habrá para Linux

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #2 en: 14:16:48 del 27 de Abril del 2013 »
Hay un programita libre llamado reveal que es maravilloso para eso y te lo recomiendo, es el que uso yo precisamente para eso que comentas. Lo uso en Mac, ni idea si lo habrá para Linux

Este no lo conocía, y mira que he estado buscando opciones (por eso me hice el script, porque ninguna opción me gustaba :D). Sí lo hay para Linux, esta tarde lo compilaré y probaré. Lo que me da un poco de cosa es que el proyecto está parado desde 2006... pero todo sea por probar opciones, gracias por ponerme sobre la pista :)
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #3 en: 15:54:39 del 27 de Abril del 2013 »
Hola

Acabo de encontrar esto!! Mañana lo pruebo

http://analogexif.sourceforge.net/help/

Y este que tiene muy buena pinta

http://sourceforge.net/projects/edit-exif/

Este último tiene versiones para Linux!
« última modificación: 16:00:26 del 27 de Abril del 2013 por espkype »

Desconectado Danipuntocom

  • Posteador nato
  • *****
  • Mensajes: 1762
  • Ubicación: Madrid
    • del infinito al plano focal
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #4 en: 20:05:39 del 29 de Abril del 2013 »
Hace un mes y pico planteé la misma cuestión y al final, gracias a la sugerencia del compañero Nrvous, estoy haciendo lo mismo con Exiftoolgui, una GUI para Exiftool. De momento todo me ha ido bien.

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #5 en: 00:45:28 del 30 de Abril del 2013 »
Hace un mes y pico planteé la misma cuestión y al final, gracias a la sugerencia del compañero Nrvous, estoy haciendo lo mismo con Exiftoolgui, una GUI para Exiftool. De momento todo me ha ido bien.


Muy interesante. Por lo que veo el Exiftoolgui hace algo similar, leyendo de un archivo los datos a incrustar, pero en interface gráfica. Me temo que yo soy de los de Domingo y Dani, me muevo muy cómodo en la línea de comandos :D

Lo que sí me interesaría mucho es ver una imagen con datos del revelado, carrete, etc... para ver qué tag EXIF usan, ¿tienes alguna con esos datos? ¿o mejor se la pido a dani9batan?
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado Danipuntocom

  • Posteador nato
  • *****
  • Mensajes: 1762
  • Ubicación: Madrid
    • del infinito al plano focal
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #6 en: 11:04:06 del 30 de Abril del 2013 »
[...] Lo que sí me interesaría mucho es ver una imagen con datos del revelado, carrete, etc... para ver qué tag EXIF usan, ¿tienes alguna con esos datos? [...]


Aquí tienes un ejemplo en Flickr: http://www.flickr.com/photos/danipuntocom/8588161233/#
Puedes descargarte la imagen original y trastear con ella.

Pero precisamente los datos del revelador no los pongo porque no se me ocurre dónde ponerlos. Eso sí, en la etiqueta de software pongo el nombre de la película.

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #7 en: 11:12:52 del 30 de Abril del 2013 »
Por cierto, hablando de esto, a lo mejor me podéis echar una mano. Llevo tiempo buscando una aplicación o algo que permita estampar la fecha y hora de los exif en el jpg. Lo necesito para organizar las fotos familiares y de mi hijo en los álbumes. Las compactas pequeñas digitales tienen esa función, pero yo deseo hacerlo con las fotos de la nex después de revelar el RAW.

¿Alguna sugerencia?

Disculpas si está fuera de lugar, lo veo relacionado y no quería abrir otro hilo

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #8 en: 12:14:00 del 30 de Abril del 2013 »
Aquí tienes un ejemplo en Flickr: http://www.flickr.com/photos/danipuntocom/8588161233/#
Puedes descargarte la imagen original y trastear con ella.

Pero precisamente los datos del revelador no los pongo porque no se me ocurre dónde ponerlos. Eso sí, en la etiqueta de software pongo el nombre de la película.


Mil gracias. Voy a ver si encuentro alguna foto que informe de todos los datos que genera el Exiftoolgui, para ver como lo hace, y sino pues lo instalaré y haré unas pruebas.

Por cierto, hablando de esto, a lo mejor me podéis echar una mano. Llevo tiempo buscando una aplicación o algo que permita estampar la fecha y hora de los exif en el jpg. Lo necesito para organizar las fotos familiares y de mi hijo en los álbumes. Las compactas pequeñas digitales tienen esa función, pero yo deseo hacerlo con las fotos de la nex después de revelar el RAW.

¿Alguna sugerencia?

Disculpas si está fuera de lugar, lo veo relacionado y no quería abrir otro hilo


Yo lo haría con ImageMagick, un script de consola... lo siento, me puede mi vena informática :D Sería unir dos comandos, exiftool para extraer la fecha y hora e ImageMagick para añadirla. Si tienes estas dos herramientas en Mac, que estoy casi seguro de que sí, podría hacerte el script en un ratillo ;)
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #9 en: 13:35:11 del 30 de Abril del 2013 »
Citar
Yo lo haría con ImageMagick, un script de consola... lo siento, me puede mi vena informática  Sería unir dos comandos, exiftool para extraer la fecha y hora e ImageMagick para añadirla. Si tienes estas dos herramientas en Mac, que estoy casi seguro de que sí, podría hacerte el script en un ratillo
Uf... no te preocupes, me suena a chino (no entendí nada). Pero gracias de todas formas

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #10 en: 14:36:29 del 30 de Abril del 2013 »
Uf... no te preocupes, me suena a chino (no entendí nada). Pero gracias de todas formas

No es difícil, pero es eso, en consola. Me temo que a veces peco mucho de ser un informático loco de esos  :-[

Con interface gráfica no se de ninguna aplicación :(
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #11 en: 16:43:55 del 30 de Abril del 2013 »
No es difícil, pero es eso, en consola. Me temo que a veces peco mucho de ser un informático loco de esos  :-[

Con interface gráfica no se de ninguna aplicación :(
gracias! La verdad es que soy demasiado torpe y no tengo el tiempo necesario para estudiar esas cosas...

Tampoco encontré ninguna aplicación

Desconectado Javier DA

  • Posteador nato
  • *****
  • Mensajes: 783
  • Ubicación: Vitoria
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #12 en: 00:23:20 del 01 de Mayo del 2013 »
Gracias por el script!. No se me había ocurrido lo de ponerle un EXIF a las fotos escaneadas, pero es muy buena idea. Con scripts de shell la gente que sabe (como aremesal  ;))hace virguerías. Yo también soy de linea de comando, pero me temo que mis habilidades con el shell y el ImageMagick son las justitas. Un saludo

Javier

DSiliceo

  • Visitante
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #13 en: 09:06:42 del 01 de Mayo del 2013 »
De todas maneras, para unas pocas fotos de vez en cuando no está mal, pero para meter la información cuando empezamos a hablar de carretes de 36 exposiciones... es algo muy tedioso y que además, en mi opinión, tiene poco o ningún valor. Claro, aquí ahora podríamos empezar a discutir la utilidad verdadera de los datos EXIF, pero seguramente hoy no toca.

Cuando yo me planteé hacer algo para incluir datos EXIF en los escaneos también elegí AWK para manejar la información, pero, a diferencia de ti, en vez de un archivo de lotes para una sola imagen —que entiendo es lo que tú has hecho— yo pensé en el método más cómodo para etiquetar un carrete entero.

Tú planteas el archivo «exifdata.txt» como un archivo en el que incluyes parejas como, por ejemplo, «Make=Yashica», a razón de una pareja por línea. Yo planteé líneas enteras de información, separando los datos por el símbolo del punto y coma. Por ejemplo, mi línea habría sido «imag_0001.jpg;Yashica;Yashica MG-1;2013:04:06 17:23:24;Film Kodak Tmax 100 Developed;4;1/125;100;45mm». Luego procesas todas las líneas de golpe. Fíjate que el primer parámetro es el nombre del fichero a modificar, y el resto son los datos a incluir en ese fichero; he acortado los datos respecto los que tú incluías en tu ejemplo porque creo que para una demostración con sólo esos se entiende, pero por supuesto la línea de datos se puede alargar todo lo que se quiera o se pueda.

También planteé un archivo de lotes que me permitiera crear ese «exifdata.txt» más cómodamente, en el que un comando me pregunta, imagen a imagen, los datos a incluir en vez de tener que introducir los núcleos de información uno a uno en Vim.

Pero como a mi modo de ver los EXIF no valen para nada y el tiempo no me sobraba demasiado, lo dejé cuando aún estaba en la fase de dibujar en papel los diagramas de flujo.

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #14 en: 10:55:31 del 02 de Mayo del 2013 »
Domingo, la idea de este script es lanzarlo dentro de otro, para informar todas las fotos de un carrete de golpe, algo como:

Código: [Seleccionar]
$ cd ~/directorio_fotos_hoy
$ for i in `ls *.jpg`; do addexif.sh $i datosexif.txt; done

Con eso en un momento tienes todo el carrete etiquetado con fecha real, cámara, proceso de revelado... lo único que no puedes hacer así es meter los datos de exposición porque son distintos para cada toma. En caso de no apuntar estos datos, con esa orden anterior lo tendrías hecho con un esfuerzo mínimo, si eres de los que anota los datos de cada toma sí que puede ser más tedioso añadirlos foto a foto.

La idea de usar una cadena de texto en lugar de un archivo es muy interesante porque en el caso de añadir los datos de exposición es más ágil hacerlo así que editando un archivo. Pero me gusta el tener el archivo de texto guardado en el mismo directorio que las fotos, como referencia. Voy a darle una vuelta, a ver si puedo tener ambas cosas en una :)

Lo de usar parejas clave=valor es por flexibilidad: no siempre voy a querer añadir los mismos datos a un carrete, así que al hacerlo así cada vez puedo añadir unos diferentes, mientras que si sólo pusiese los valores estos serían posicionales y dejaría de ser flexible. Lo siento, ahora estoy con Python y estoy muy influenciado por los parámetros de funciones con nombre :D

¿Ya no dibujas diagramas en papel? ¡Yo no podría desarrollar sin papel! Bueno, realmente lo que me gusta usar es una pizarra blanca :D

Lo que sigo buscando es alguna foto con los datos de carrete y revelado en EXIF en campos dedicados, y no en el Comments o similar.
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #15 en: 00:27:33 del 03 de Mayo del 2013 »
No se a vosotros, pero a mi me gusta que en mis fotos de flickr ponga: esta foto fue sacada con una Voigtlander Bessa-R2, frente a tanto digital, y que el que lo vea quizá se interese y haga una búsqueda por esa cámara

Desconectado aremesal

  • Moderador
  • Posteador nato
  • *****
  • Mensajes: 735
  • Ubicación: Tailandia
    • Mi cuadernito
Re: Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #16 en: 06:31:45 del 03 de Mayo del 2013 »
No se a vosotros, pero a mi me gusta que en mis fotos de flickr ponga: esta foto fue sacada con una Voigtlander Bessa-R2, frente a tanto digital, y que el que lo vea quizá se interese y haga una búsqueda por esa cámara

Exacto! Por eso me gusta que salga la cámara en los EXIF!
Siempre aprendiendo, y disfrutando del camino
---------------------------------------------------------------
En uso: Yashica Electro 35CC

DSiliceo

  • Visitante
Re:Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #17 en: 06:38:03 del 03 de Mayo del 2013 »
Mira que sois presumidos...

Desconectado espkype

  • Posteador nato
  • *****
  • Mensajes: 4689
  • Ubicación: Tokio, Japón
  • Fotografío cosas
Script Linux para añadir EXIF a fotos escaneadas
« Respuesta #18 en: 08:23:46 del 03 de Mayo del 2013 »
Mira que sois presumidos...
mira quien habla, :) todos estamos orgullosos de nuestros cacharritos