Quiero especificar un directorio y hacer que el software encuentre todas las fotos en el directorio y sus subdirectorios, y si contienen fecha / hora EXIF, configura su marca de tiempo del sistema de archivos para que coincida con el EXIF.
Quiero especificar un directorio y hacer que el software encuentre todas las fotos en el directorio y sus subdirectorios, y si contienen fecha / hora EXIF, configura su marca de tiempo del sistema de archivos para que coincida con el EXIF.
Respuestas:
Esto es lo contrario de ¿Hay algún software que establezca las fechas EXIF en función de la fecha de modificación del archivo? , y estoy seguro de que se aplicarán todos los programas enumerados allí.
De estos, para esta tarea muy simple, jhead es mi sugerencia. Por ejemplo, el comando
jhead -ft *.jpg
establece un montón de archivos para que la marca de tiempo del archivo coincida con EXIF.
find
, para pasar por subdirectoriosPara realizar la recursión en subdirectorios, puede combinarlo con el find
comando disponible en Linux / Unix / Mac (o Cygwin para Windows):
find -name '*.jpg' -exec jhead -ft {} +
O para encontrar alguno de *.JPG *.JPEG *.jpg *.jpeg ...
ustedes también puede intentar
find -iname '*.jp*g' -exec jhead -ft {} +
También puede usar find para mostrar todos los archivos que se encontrarían ... sin ejecutar ningún otro comando (como jhead):
find -iname '*.jp*g'
Otras utilidades como ExifTool o Exiv2 son mucho más capaces, pero a costa de la complejidad. Nunca recuerdo de antemano las opciones correctas para hacer algo con ellos y tengo que mirar la documentación cada vez, pero jhead -ft
es fácil de recordar con el mnemónico "tiempo fijo".
Simplemente para la corrección, sin embargo, yo hice vistazo a la documentación, y con ExifTool , hacer esto:
exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname
(Elimine el -r
si no desea la recursividad, y si lo hace, también puede dar una lista de archivos o un comodín en lugar de directoryname
). Y tenga cuidado con esas citas: si está ejecutando esto en Windows, desea "
en lugar de '
.
Con Exiv2 :
exiv2 -T rename *.jpg
Tenga en cuenta que con minúsculas -t
(o sin ninguna -T
) Exiv2 también cambiará el nombre del archivo a un nuevo nombre basado en la marca de tiempo, lo que puede ser muy confuso. Exiv2 tampoco hace recursión.
find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +
. Explicaciones: -name '[0-9][0-9]*'
para evitar cambiar el nombre de los archivos que ya tienen un prefijo de fecha ( '[0-9][0-9]
para tener en cuenta años y meses). -iname '*.jp*g'
se puede omitir porque jhead
solo procesa archivos compatibles (solo archivos JPEG). %f
para mantener el nombre del archivo original.
Irfanview y Jhead harán lo que quieras.
Ambos gratis.
Enlaces a ambos a continuación.
jhead es impulsado por la línea de comandos o puede ser llamado por otros procesos.
La versión de Irfanview se puede invocar desde una línea de comandos o internamente en un lote o archivo por archivo.
El siguiente ejemplo para Irfanview muestra cómo copiar en cualquier dirección:
Irfanview
Permite cambios en la GUI o en la línea de comandos del lote o por transferencia de fecha / hora de archivo desde EXIF a especificaciones de archivo o viceversa (sin otros cambios de archivo si así se desea).
Fuente: Gratis de www.irfanview.com
Esto es MUCHO más fácil y rápido en la práctica después de unos pocos usos que las instrucciones a continuación lo hacen aparecer. por ejemplo,
para convertir la fecha / hora de un solo archivo a valores EXIF se requieren
Mayús-J, Alt-F, Entrar.
Ver por qué las primeras veces lleva más tiempo.
Para hacer esto para un lote de archivos SONIDOS complejos de aprender -
Requiere: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(O: T, Ctrl-A, Shift-J, Intro) (ofrece menos opciones)
PERO, de hecho, es casi completamente intuitivo después de un poco de uso: los menús lo guían inicialmente hasta que se forma el camino cerebral.
GUI, por archivo
Options, JPG lossless rotation (Shift-J)
Select "Apply original EXIF date/time to new file"
Consider also selecting other options
GUI, uno o muchos archivos (a través de la vista en miniatura)
Open Thumbnails view ('File, Thumbnails' or 'T' from Window view
Select images to change EXIF data of
usually all in folder -> Ctrl-A
Then: File, 'JPG lossless operations'
(1) Change EXIF date/time
"Change EXIF date/time"
Options are offered to set Date/time to specific setting
or to move all times back/forwards by selected DHMS amount
calculator provided to check result is as desired.
(2) Transfer EXIF date / time to file saved date time
"Lossless rotation with selected files" [Shift-J]
then, as for single file version above
Select "Apply original EXIF date/time to new file"
Desde la línea de comando : esta es una "rotación" sin acción excepto para copiar la fecha / hora desde EXIF a la fecha y hora del archivo. Lo contrario también se puede lograr si se desea. :
i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)
Para copiar la fecha / hora en la dirección opuesta ((especificación de archivo a EXIF)
use como se indica arriba con (0,0,1,0,0,0,0,0)
jhead
hará casi cualquier cosa que puedas imaginar con archivos jpeg
Fuente: Gratis de http://www.sentex.net/~mwandel/jhead/
Yo uso un archivo por lotes como a continuación. Otras opciones son posibles:
Dicen: cosas que Jhead puede modificar en un archivo JPEG EXIF
_________________________
Nota: agosto de 2016: "Usuario anónimo" sugirió correctamente que una conversión sugerida no funcionó como dije. He agregado mucho al área en cuestión.
Solo otra herramienta EXIF de línea de comandos que puede cambiar la última fecha de modificación de los archivos para que coincida con el momento de tomar la imagen, según la metada EXIF en el archivo de imagen JPEG:
exiv2 -T rename somedir/foo*.jpg
No se preocupe, el argumento del comando rename
está bien allí y no hace daño.
Es solo que la acción de cambio de nombre del archivo se usa incorrectamente para crear solo el efecto secundario de cambiar la marca de tiempo.
Si bien realmente no recomiendo confiar en la fecha / hora del archivo cuando se trata de sus imágenes, puede usar una herramienta gratuita llamada EXIF Date Changer para configurar por lotes las fechas de archivo de todas sus imágenes JPG. La configuración predeterminada establecerá la fecha de creación y la fecha de modificación del archivo en la foto tomada.
La razón por la que no recomiendo esto es que la fecha del archivo se actualiza fácilmente. Si edita la imagen, la fecha de modificación se actualiza. Si copia la imagen, obtiene una nueva fecha.
Una solución mucho mejor es cambiar el nombre de los archivos para incluir la fecha / hora en el nombre del archivo. Esto todavía permite una clasificación fácil y funciona bien con imágenes almacenadas en iPhones / dropbox.
Mira mi nuevo software gratuito "Photo Date Organizer": http://photodateorganizer.sourceforge.net/
FastStone Image Viewer puede hacer esto (se utiliza la versión 4.9): simplemente seleccione los archivos en el panel de miniaturas, haga clic con el botón derecho en ellos, seleccione "Herramientas"> "Cambiar marca de tiempo", luego puede usar datos EXIF (con o sin modificaciones) o usar wholy Fecha / hora manual fija personalizada.
Advance Renamer es el mejor software fácil de usar que es muy simple.
Arrastra y suelta todas las fotos en AR (Advance Renamer)
Haga clic en (Arriba a la izquierda) Agregar método -> Nuevo nombre
Haga clic en una de las imágenes en la parte inferior central, verá un botón ExifTool que muestra todos los metadatos, simplemente haga clic en un atributo y obtendrá la etiqueta. En este caso es<ExifTool:DateTimeOriginal>
Copie esto y péguelo en el cuadro de texto Nuevo nombre Puede agregar cualquier cosa antes o después IMG_<ExifTool:DateTimeOriginal>
, como , DSC_<ExifTool:DateTimeOriginal>
etc.
Haga clic en Iniciar lote (arriba a la derecha) Esto cambiará el nombre de todos sus archivos con la fecha, por ejemplo, 2017_12_01 19_10_12 Siempre es bueno tener la fecha original en el nombre del archivo porque los atributos pueden perderse pero los nombres de los archivos no.
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
Se lo sugerí al autor de PhotoRenamer, quien respondió ...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
Agrego un botón en la pestaña 'Opciones' de la cinta de opciones. Desde allí, puede seleccionar la opción para actualizar el estado del archivo.
Por cierto, para evitar el uso de máscara, también agrego un nuevo atributo de máscara:% F. Si usa esta máscara simple, el archivo cambia de nombre ... con su propio nombre ... Por lo tanto, no está obligado a cambiar el nombre del archivo para el que desea actualizar los atributos de tiempo del archivo ...
Esta es una vieja pregunta y parece que hay algunas sugerencias que deberían funcionar bien, pero a la que llegué para solucionar un problema de pedido de archivos después de una actualización de un teléfono Android fue esta.
Tal vez esto sea útil para alguien.
El otro programa gratuito es Google Picasa: puede cambiar fácilmente la fecha y la hora de todas las fotos:
Buen artículo al respecto: cómo cambiar la fecha de una foto en Picasa a cuándo se tomó la foto