Quiero especificar un directorio y que el software busque todas las fotos en el directorio y sus subdirectorios, y si contienen fecha / hora EXIF, establece la marca de tiempo de su sistema de archivos para que coincida con el EXIF.
Comentarios
- Por supuesto, hoy en día, haría esta pregunta en recomendaciones de software ; sin embargo, obtuvo algunas respuestas excelentes.
Respuesta
Esta es la inversa de ¿Existe algún software que establezca las fechas EXIF según la fecha de modificación del archivo ‘? , y estoy seguro de que se aplicarán todos los programas enumerados allí.
jhead
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.
jhead con find
, para pasar por subdirectorios
Para realizar la recursividad en subdirectorios, puede combinarlo con el comando find
disponible en Linux / Unix / Mac (o Cygwin para Windows):
find . -name "*.jpg" -exec jhead -ft {} +
O para encontrar cualquiera de *.JPG *.JPEG *.jpg *.jpeg ...
también puede probar
find . -iname "*.jp*g" -exec jhead -ft {} +
También puede usar buscar para mostrar todos los archivos que serían. .. encontrado, sin ejecutar ningún otro comando (como jhead):
find . -iname "*.jp*g"
Otras herramientas
Otras utilidades como ExifTool o Exiv2 son mucho más capaz, pero al precio de la complejidad. Nunca recuerdo de improviso las opciones correctas para hacer algo con ellas y tengo que mirar la documentación cada vez, pero jhead -ft
es fácil de recordar con el mnemónico «fix time».
ExifTool
Sin embargo, solo para completar, sí miré la documentación y con ExifTool , haga esto:
exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname
(Elimine -r
si no «No quiero 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 comillas, si» está ejecutando esto en Windows, desea "
en lugar de "
.
Exiv2
Con Exiv2 :
exiv2 -T rename *.jpg
Tenga cuidado con -t
(o sin -T
) Exiv2 también cambiará el nombre del archivo a un nuevo nombre basado en la marca de tiempo, lo que puede resultar muy confuso. Exiv2 tampoco hace recursividad.
Comentarios
- Tienes razón, esto es lo opuesto pero infinitamente más útil 🙂
- jhead es muy útil para esto – Y para muchas otras manipulaciones de archivos jpg. Tenga cuidado al usarlo: es una herramienta extremadamente poderosa que puede causar una cierta cantidad de estragos si se usa incorrectamente. Recomiendo usarlo en un archivo por lotes para que siempre haga lo que pretenda, y primero pruebe el resultado en un conjunto de archivos de prueba.
- +1 pero obtuve la respuesta 😉 Solo para otros en el futuro puedo encontrar una manera de hacer exactamente lo que le pedí …
- @olibre Sí, eso funcionará en Linux / Unix o Mac.
- He notado algunos navegadores de imágenes presentes (diaporama ) imágenes solo en el orden del nombre de archivo (no en la hora de modificación del archivo). Finalmente utilizo la marca de tiempo EXIF para establecer la hora del archivo Y para prefijar el nombre del archivo. Utilizo el comando
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 el cambio de nombre de 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 porquejhead
solo procesa archivos compatibles (solo archivos JPEG).%f
para mantener el nombre de archivo original.
Respuesta
Irfanview y jhead harán lo que quieras.
Ambos gratuitos.
Enlaces a ambos a continuación.
jhead está controlado por línea de comando o puede ser llamado por otros procesos.
La versión de Irfanview puede invocarse desde una línea de comando o internamente en un lote o archivo por archivo.
El siguiente ejemplo de Irfanview muestra cómo copiar en cualquier dirección:
Irfanview
Permite cambios de línea de comando o GUI de lotes o por transferencia de fecha / hora de archivo de EXIF a especificación de archivo o viceversa (sin otro archivo cambia si lo desea).
Fuente: Libre de www.irfanview.com
Esto es MUCHO más fácil y rápido en la práctica, después de unos pocos usos, las instrucciones a continuación hacen que parezca. p. ej., para convertir la fecha / hora de un solo archivo a valores EXIF, se requiere
Shift-J, Alt-F, Enter.
Ver por qué las primeras veces demoran más.
Para hacer esto para un lote de archivos SONOROS complejos de aprender –
Requiere: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(O: T, Ctrl- A, Shift-J, Enter) (da 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 la ruta del cerebro.
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 varios archivos ( a través de la vista en miniatura)
ADVERTENCIA: ( ¡Agregado 2020!)
Se ha señalado que seleccionar las opciones incorrectas puede obtener un resultado no deseado, por ejemplo, todos los archivos de destino configurados en una sola fecha seleccionada y tiempo. Hacerlo bien «no es demasiado difícil», pero MIRAR las distintas casillas de verificación y decidir cuál se adapta a lo que desea hacer.
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 – este es un «rotar» sin ninguna acción excepto para copiar la fecha / hora de EXIF a la fecha y hora del archivo. También se puede lograr lo contrario 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)
utilizar como se indicó anteriormente con (0,0,1,0,0,0,0,0)
jhead
hará casi cualquier cosa que puede imaginar con archivos jpeg
Fuente: Libre de http://www.sentex.net/~mwandel/jhead/
I use un archivo por lotes como se muestra a continuación. Otras opciones son posibles:
- jhead -ft % 1 .jpg
Dicen: Cosas que jhead puede modificar en un archivo exif jpeg
- Imágenes de arriba a la derecha de acuerdo con la etiqueta de rotación usando jpegtran
Establezca o ajuste relativo las marcas de tiempo exif internas
Corrija las compensaciones de fecha / hora en lotes grandes de imágenes
Cambie el nombre o los archivos de sello de fecha según exif timestamp
Transferir encabezados exif entre imágenes
Reemplazar miniaturas dentro de encabezados Exif
Editar comentarios jpeg (pero no los comentarios Exif)
Eliminar secciones exif o comentarios de imágenes jpeg
Crear un nuevo encabezado exif mínimo que contenga la fecha y miniatura
_________________________
Nota: agosto de 2016: » El usuario anónimo «sugirió correctamente que una conversión sugerida no funcionó como dije. He agregado mucho al área en cuestión.
Comentarios
- Agosto de 2016: » Usuario anónimo » sugirió correctamente que una conversión sugerida no funcionó como dije. ‘ he agregado ampliamente al área en cuestión.
- ¿Qué pasa con los archivos sin formato?
- @MichaelClark I ‘ me alegra que hayas hecho esa pregunta :-). Observo que todos parecemos haber abordado JPG archivos y no RAW. Yo ‘ me imagino que sería una de las personas más propensas a preguntar cómo hacer esto con archivos RAW :-).
- CUIDADO: el paso 1 de la » GUI, uno o varios archivos (a través de la vista en miniatura) » es engañoso: establece todos los archivos seleccionados en la misma fecha y hora (que no es lo que se preguntó en la pregunta). Solo el paso 2 conduce al resultado solicitado.
- @Christoph Gracias. Agregué una nota de advertencia general al comienzo de esa sección.
Respuesta
Solo otra herramienta EXIF de línea de comando que puede cambiar la última fecha de modificación de los archivos para que coincida con el momento de tomar la foto, según los metadatos EXIF del 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 el efecto secundario de cambiar la marca de tiempo.
Respuesta
Aunque realmente no recomiendo confiar en la fecha / hora del archivo cuando se trata de sus imágenes, puede utilizar una herramienta gratuita llamada EXIF Date Changer para establecer por lotes las fechas de archivo de todas sus imágenes JPG.La configuración predeterminada establecerá tanto la fecha de creación como la fecha de modificación del archivo a 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 aún permite una fácil clasificación y funciona bien con imágenes almacenadas en iPhones / dropbox.
Respuesta
Eche un vistazo a mi nuevo software gratuito «Photo Date Organizer»: http://photodateorganizer.sourceforge.net/
Comentarios
- De la página de SourceForge: » Presentado por: killdaclick «. Anunciar sus propios productos no es ‘ t prohibido aquí, pero debe dejar en claro cuál es su afiliación.
- @PhilipKendall hecho 🙂
Responder
FastStone Image Viewer puede hacer esto (se usa la versión 4.9) – simplemente seleccione los archivos en el panel de miniaturas, haga clic derecho sobre ellos , seleccione «Herramientas»> «Cambiar marca de tiempo» – luego puede usar datos EXIF (con o sin modificaciones) o usar la fecha / hora manual fija totalmente personalizada.
Comentarios
- ¡Vaya! No lo sabía, he estado usando su herramienta de captura de pantalla durante años y no he encontrado nada mejor. Puede obtener la última versión gratuita aquí ; En ‘ no necesito ninguna de las funciones de pago. También he usado su visor en el pasado, pero no sabía que podía hacerlo.
Responder
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 y 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 Nuevo nombre cuadro de texto Puede agregar cualquier cosa antes o después, como
IMG_<ExifTool:DateTimeOriginal>
,DSC_<ExifTool:DateTimeOriginal>
etc. -
Haga clic en Iniciar lote (Arriba Derecha) Esto cambiará el nombre de todos sus archivos con la fecha P. ej. 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.
- De nuevo, arrastre todos los nombres renombrados archivos en AR
- Haga clic en Nuevo método -> Marca de tiempo
- Marque todo 3 casillas de verificación Crear, Modificar, Acceder (el acceso a veces puede no funcionar, simplemente desmárquelo si sucede)
- Seleccione Patrón de nombre de archivo y pegue
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
- Iniciar lote.
- Eres bueno. Misión cumplida
Respuesta
He completado meterse con las fechas de los archivos en mi biblioteca, pero no estaba satisfecho con ninguna de las herramientas. Algunas no admiten la recursividad de directorio, algunas no pueden modificar algunas marcas de tiempo específicas de Windows, algunas son difíciles de usar.
Hice una nueva herramienta de línea de comandos para una sola tarea: procesa todos de forma recursiva archivos en el directorio dado para extraer la fecha EXIF y establecer la fecha del archivo.
La herramienta es multiplataforma.
Consulte ExifDate2FS
Respuesta
Esta es una pregunta antigua y parece que hay algunas sugerencias que deberían funcionar bien, pero al que llegué para solucionar un problema de ordenación de archivos después de una actualización de teléfono Android fue este.
- Abra Windows (por primera vez en mucho tiempo)
- Instale ExtFS o algo que pueda leer particiones ext4
- Copie fotos al disco duro desde Micro SD
- Use Attribute Changer ( https://www.petges.lu/home/ ) para establecer las fechas de creación / modificación en la fecha EXIF
- Devolver la tarjeta al teléfono
- Copiar las fotos al teléfono a través de MTP
Quizás esto sea útil para alguien.
Responder
Me registré en StackExchange solo para poder agradecer al OP por haber publicado esto y agregar mi solución alternativa d bc algunos de los comandos aquí no funcionaron para mí. Lo siento, voy a hablar sobre mi proceso.
Estoy en medio de un esfuerzo de «Por fin limpiemos mis archivos de fotos», ya que la lucha es real, especialmente porque iCloud y Google Photos los toman de su dispositivo y la administración de archivos tiene poco que ver. hacer con él en estos días (y en épocas anteriores, los buenos servicios y productos eran un poco caprichosos e imponían una extraña aleatoriedad y duplicación que requería un esfuerzo real para superar).
He usado Flickr para sacar fotos mi máquina cuando mi disco era demasiado pequeño para contenerlos todos. He usado Google Photos en una cuenta desde 2006, así que tenía un conjunto de duplicados aleatorios y fotos únicas allí, a través de sus diferentes encarnaciones de carga.
Cuando la fotografía de iPhone realmente comenzó a funcionar, me conectaría por USB, los importaría a mi Dropbox, que les cambiaría el nombre con un sello de fecha y hora 🙌🏻, los pondría en una carpeta de año / mes con un poco de curación para ordenar capturas de pantalla y comprar fotos, y Google Fotos miró esa carpeta de archivo para subirlas. Esto funcionó bien hasta que iCloud tomó las fotos de mi iPhone y resultó que necesitaba su propio flujo de trabajo.
Porque La duplicación siempre ha sido un GRAN problema, una herramienta llamada Gemini II finalmente hizo posible este proyecto de limpieza y archivo.
Para consolidar mi archivo en una unidad externa, decidí descargar todas las fotos excepto la más reciente de iCloud (usando Image Capture y un USB en mi teléfono: no es 100% confiable), Flickr y Google, y limpiarlo todo.
Así es como descubrí Datos Exif: algunas fotos (solo algunas) no eran archivos planos (ver imagen a continuación) y mostraban sus metadatos en el Finder. La mayoría solo tienen visible la fecha de creación y modificación. en Los descargué de Flickr (y algunos de Google) guardados como si fueran creados y modificados el día que los descargué. No es bueno. Algunos tenían datos EXIF visibles, pero muchos / la mayoría parecían planos. Había estado eliminando duplicados porque tenían la marca de tiempo incorrecta (es decir, si eran del mismo tamaño o más pequeños). Descubrir los datos Exif y la marca de tiempo me llevó aquí.
El paso de Dropbox siempre ha sido importante para mí porque IMG _ #### o DSC #### siempre ha sido inútil. Alguien me preguntó por qué no omití el paso de Dropbox y usé Automater para cambiarles el nombre. Automater no tiene la capacidad que puedo ver, pero gracias a Jhead esto finalmente va a funcionar.
Descubrí cómo instalar primero jhead y luego ejecutar jhead a través de un directorio de forma recursiva y la mayoría de las veces, los datos EXIF todavía estaban en los archivos de fotos. Resultado: jhead cambió el fechas de los archivos a lo que estaba en los datos EXIF. Sin decepciones.
Primero, para usuarios de Mac: siga las instrucciones de instalación de Untar desde la línea de comandos (Terminal). Si no los encuentra para jhead, busque las instrucciones generales de untar y sub en la ubicación del tarball de jhead. Esto funcionó, porque descargar e intentar instalar desde la línea de comandos ciertamente no lo hizo. Siguiente: asegúrese de instalar Xcode desde la App Store. Todos los desarrolladores de Apple necesitan este programa y hace que los comandos funcionen que de otra forma no funcionarían. Es necesario para «make» e «install make».
Usando la herramienta jhead: No estoy familiarizado con la lectura de instrucciones y manuales de Unix (man jhead) pero lo suficientemente familiarizado con CLI que si alguien ha documentado algo en alguna parte, pruebo sus opciones hasta que algo funciona.
Esto no funcionó para mí:
[directorio que quiero]> buscar -nombre «* .jpg» -exec jhead -ft {} +
En otra parte de StackExchange encontré una cadena de búsqueda recursiva diferente en la que me puse manos a la obra para buscar (tenía una opción -print que no parecía necesaria):
find . | grep ".*[.]jpg"
pero si agrego el comando jhead, obtendría un error diciendo que no entendía «grep»
Deconstruyendo términos de búsqueda agregando y quitando opciones / variables de búsqueda e intentando obtener jhead ser parte de ese comando no funcionó hasta que probé una convención anterior:
jhead -ft ./*/*.jpg
Esto se ejecutó en un directorio completo y no funcionó escupir muchos errores como «no contiene marca de tiempo EXIF» o «Error: hora» 0000: 00: 00 00:00:00 «: no se puede con vertical a la hora de Unix «
Cuando miré, solo quedaba una minoría de las marcas de tiempo descargadas ayer. Así que probé esto en las otras 10 carpetas de archivos que tenía en mi carpeta «duplicados». Las cosas con fecha de 2020 volvieron a 2004, 2013, 2012. Aprendí que si se ejecuta el mismo directorio dos veces, no se obtiene la salida por segunda vez.
Luego usé jhead para cambiar el nombre de mis archivos de acuerdo con la convención de la marca de tiempo. Funcionó como un encanto; si el nombre del archivo original tenía un significado para usted y desea conservarlo, asegúrese de incluirlo en la cadena de marca de fecha elegida:
" "%f … *.jpg
Ahora me resulta frustrante que Finder sea inconsistente al mostrar esta información cuando podría. A continuación se muestra un ejemplo de un archivo para el que Finder muestra información completa (poco común).
Comentarios
- Hola, bienvenido a Photo-SE. Estos intercambios de pila son sitios Q & A, donde cada respuesta intenta responder directamente a la pregunta. No son como los foros de discusión más típicos, que a menudo están enlazados, y las publicaciones son respuestas entre sí tanto como (a menudo más que) a la publicación original. Tal como está escrito, su respuesta está muy orientada a la discusión y la narrativa acerca de sus necesidades y el proceso de una herramienta de cambio de nombre, en lugar de centrarse en responder la pregunta tal como se le preguntó.
- En un detalle, la razón por la que
find -name '*.jpg' -exec jhead -ft {} +
no ‘ no funcionó es porquefind
necesita una ruta para buscar in antes de que se proporcionen expresiones como-name <...>
. ‘ he actualizado la respuesta aceptada / más votada para corregir el error. Prueba esto en su lugar:find . -name '*.jpg' -exec jhead -ft {} +
- ¿Qué te hace pensar que no ‘ t inicié el comando desde dentro de la ruta de el directorio que quería? Si no ‘ no funcionó, no ‘ funcionó. Encontré mi solución. Me facilitó la vida. Así que lo publiqué y lo transmití. Si los ejemplos del mundo real que explican cosas a los que no son programadores no son ‘ bienvenidos, y me regañan por no ser lo suficientemente técnico, gané ‘ t comenta de nuevo. Bravo.
- Si lo escribió como lo escribió, entonces no hay ‘ s de ninguna manera el comando funcionaría . Es decir, error de entrada. Lo que sugerí (
find . -name '*.jpg' -exec jhead -ft {} +
) es lo que necesitaría usar si quisiera ejecutarlo desde la ruta del directorio que deseaba. El punto como ruta significa » directorio local «.find
requiere una ruta de búsqueda inicial. Esto está disponible en las páginas de manual defind
‘. - En cuanto a explicar las cosas a los no programadores: las buenas respuestas son absolutamente deseado en los sitios de Stack Exchange. Siempre , sin embargo, que sean respuestas a la pregunta. Tómese un momento para ver el breve Site Tour para tener una idea de en qué se diferencian los sitios de Stack Exchange de los foros de Internet orientados a la discusión.
Respuesta
Se lo sugerí al autor de PhotoRenamer, quien respondió …
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
Añado un botón en la pestaña Opciones de la Cinta .. Desde allí, puede seleccionar la opción para actualizar el estado de tiempo de archivo 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 se renombra … 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 …
Responder
El otro programa gratuito es Google Picasa: puedes cambiar fácilmente la fecha y la hora de todos las fotos:
Buen artículo al respecto: Cómo cambiar la fecha de una foto en Picasa a cuándo se tomó la foto
Comentarios
- ¿Cómo es esta solución? trabajando ? El OP quiere cambiar la fecha del archivo para que corresponda con la fecha EXIF . Probablemente eso no sea lo que hace Picasa.