Hoy he leido un post de Systemadmin, y me ha vuelto a pasar. Algo que iba a hacer una semana de estas (o mes) y lo publican antes. A si que, a ver si me pongo las pilas para hacerlo cuanto antes...
Septiembre 2014
Hace un año que tendría que haber buscado esto. Posiblemente sea, porque a veces me pasa, que quiero hacer algo y al poco tiempo me encuentro con que alguien ya lo ha hecho. La verdad: tendría que aprender a que me diese igual y hacerlo de todas formas. Claro: así parece que lo he copiado o que también quiero acaparar la atención con ese tema en concreto. Sobretodo los tiros van por ahí cuando esto me sucede. Pero un año...
Por lo tanto, lo que quiero es modificar los datos exif de una imágen. Esos datos se guardan al mismo tiempo que se salva la foto, y los entrega la misma cámara. Ahí se puede ver un montón de información: desde la cámara empleada (Canon, Canon, Canon...) pasando por la apertura del obturador o, incluso, y aquí lo más importante, fecha en la que se sacó la foto, las coordenadas GPS y un montón de datos más. Sí. Y si no se tiene mucho cuidado, sobretodo con los móviles de hoy en día, te puedes encontrar con que estás dando el lugar donde te encuentras sin saberlo. También está la opción contraria: querer dar a entender que estás en un lugar que no es donde estás. Y si no te encuentras en ese lugar, ¿dónde has ido a parar? Ahora en serio. Lo que quería hacer era precisamente esta segunda opción. Cambiar estos datos. En un caso forense puede ser un quebradero de cabeza el análisis de las fotos (descartando después que se pueda descubrir que han sido manipuladas por los rastros que se queden en el sistema de ficheros).
Nos van a hacer falta dos cosas:
- Una foto que tenga estos datos
- Un programa que nos permita manipularlos.
Lo primero que voy a hacer va a ser buscar el programita. No voy a negar que quería montarme uno por mi cuenta, pero eso será para dentro de unos pocos años. He encontrado uno que se llama ExifTool. Alguna que otra cosa he conseguido hacer. No con el éxito que esperaba, pero sí lo suficiente como para poderlo enseñar. Si tienes alguna duda de cómo hacerlo funcionar, te puedes pasar por sus FAQs.
Vamos a ver la foto que les hice a los sushis tan buenos que me cociné hace unos pocos años:
Si ejecutas el programa, verás sus metadatos originales:
Ahora, queremos cambiar algunos datos. En mi caso, quiero añadirle los datos de geoposicionamiento. Pero no debería de ser ningún problema cambiar los ya existentes. Supongo que sabréis que mi casa se encuentra aquí o (en la versión antigua del maps, aquí). Como los hice en ese punto, quiero que la foto lo diga.
Para hacerlo necesitaré saber primero, cómo le digo al programa qué tengo que poner. En el enlace de antes, con las preguntas frecuentes, me lo dicen. Y también necesito localizar las coordenadas que se corresponden con el lugar donde "hice" las fotos. Por eso tuve que buscar la solución.
Por lo tanto, tenemos las coordenadas: -159.3158771 longitud, y 3.8227357 latitud.
Ahora, queremos introducirlas en nuestra imagen. Y aquí es donde más problemas estoy teniendo. No se muy bien cómo decirle en qué sentido tiene que mirar. Si miráis las instrucciones, te dicen que para el parametro -exif:gpslatitude y -exif:gpslongitude pongas las referencias con -exif:gpslatituderef y -exif:gpslongituderef. Pero, después, para los mismo parámetros, pero empezando por -xmp en vez de por -exif te dicen que si quieres poner la referencia tendrás que usar los valores positivos o negativos según corresponda (por lo que no hay parámetros gpslongituderef y gpslatituderef). Cosa curiosa que no te diga nada si también usas los números negativos en los parámetros "-exif:".
Ahora toca ejecutar alguno de los parámetros. Antes de nada: machacar la imagen de prueba por la original. La he dejado tan inestable que por un lado dice que la latitud es sur y por otro lado dice que es norte.
Por lo tanto, vamos a escribir en una consola (cmd), en la misma ruta donde se encuentra la herramienta:
"exiftool(-k).exe" -exif:gpslatitude="3.8227357" -exif:gpslatituderef=N -exif:gpslongitude="159.3158771" -exif:gpslongituderef=W "nombre del fichero con su ruta.jpg"
Vamos a ver la foto que les hice a los sushis tan buenos que me cociné hace unos pocos años:
Foto original para ver sus metadatos exif: sushi |
Si ejecutas el programa, verás sus metadatos originales:
Datos exif de la imágen |
Ahora, queremos cambiar algunos datos. En mi caso, quiero añadirle los datos de geoposicionamiento. Pero no debería de ser ningún problema cambiar los ya existentes. Supongo que sabréis que mi casa se encuentra aquí o (en la versión antigua del maps, aquí). Como los hice en ese punto, quiero que la foto lo diga.
Para hacerlo necesitaré saber primero, cómo le digo al programa qué tengo que poner. En el enlace de antes, con las preguntas frecuentes, me lo dicen. Y también necesito localizar las coordenadas que se corresponden con el lugar donde "hice" las fotos. Por eso tuve que buscar la solución.
Por lo tanto, tenemos las coordenadas: -159.3158771 longitud, y 3.8227357 latitud.
Ahora, queremos introducirlas en nuestra imagen. Y aquí es donde más problemas estoy teniendo. No se muy bien cómo decirle en qué sentido tiene que mirar. Si miráis las instrucciones, te dicen que para el parametro -exif:gpslatitude y -exif:gpslongitude pongas las referencias con -exif:gpslatituderef y -exif:gpslongituderef. Pero, después, para los mismo parámetros, pero empezando por -xmp en vez de por -exif te dicen que si quieres poner la referencia tendrás que usar los valores positivos o negativos según corresponda (por lo que no hay parámetros gpslongituderef y gpslatituderef). Cosa curiosa que no te diga nada si también usas los números negativos en los parámetros "-exif:".
Ahora toca ejecutar alguno de los parámetros. Antes de nada: machacar la imagen de prueba por la original. La he dejado tan inestable que por un lado dice que la latitud es sur y por otro lado dice que es norte.
Por lo tanto, vamos a escribir en una consola (cmd), en la misma ruta donde se encuentra la herramienta:
"exiftool(-k).exe" -exif:gpslatitude="3.8227357" -exif:gpslatituderef=N -exif:gpslongitude="159.3158771" -exif:gpslongituderef=W "nombre del fichero con su ruta.jpg"
De hecho, esta es la primera vez que lo pruebo del tirón. El resto de las pruebas, las he hecho con los dos grupos (latitud y longitud) por separado. Además, antes de daros el pantallazo, quiero cambiar otro dato más. Vamos a ver... alguno que no me obligue a montar otra pantalla grande... Según las instrucciones, si ejecuto el programa con el parámetro -s me saldrán los nombres de los tags que tendré que utilizar para cambiar los datos.
"exiftool(-k).exe" -s "nombre del fichero.jpg"
Así que, vamos a ver, vamos a ver...
"exiftool(-k).exe" exif:lightvalue="1000" -exif:aperturevalue=300 -exif:lightsource=flash "2011-11-11 22.34.43.jpg"
"exiftool(-k).exe" -s "nombre del fichero.jpg"
Así que, vamos a ver, vamos a ver...
"exiftool(-k).exe" exif:lightvalue="1000" -exif:aperturevalue=300 -exif:lightsource=flash "2011-11-11 22.34.43.jpg"
Y, tenemos el resultado:
Datos exif modificados: geoposicionamiento, fuente de luz... |
Así, si vemos otra vez la foto:
Foto con sus metadatos exif modificados: sushi |
Así, si cogemos las coordenadas que os he indicado, podremos ver que esta comida tan rica, rica la hice en estas islas que están a aproximadamente a... ¿20.000 kilómetros a ojo de buen cubero?:
Coordenadas actualizadas en los metadatos exif puestas en el Gogle Maps |