Vreau să specific un director și software-ul să găsească toate fotografiile din director și din subdirectoarele sale și dacă acestea conțin data / ora EXIF, setează marcajul de timp al sistemului de fișiere pentru a se potrivi cu EXIF.

Comentarii

  • Desigur, în zilele noastre aș pune această întrebare pe recomandări de software – a primit câteva răspunsuri grozave aici, deși

Răspuns

Acesta este inversul Există vreun software care să stabilească datele EXIF pe baza datei de modificare a fișierului ‘? și sunt sigur că toate programele enumerate acolo se vor aplica.

jhead

Dintre acestea, pentru această sarcină foarte simplă, jhead este sugestia mea. De exemplu, comanda

jhead -ft *.jpg 

setează o grămadă de fișiere astfel încât marcajul de timp al fișierului să se potrivească cu EXIF.

jhead cu find, pentru parcurgerea subdirectoarelor

Pentru a efectua recursivitatea în subdirectoare, puteți să o combinați cu comanda find disponibilă pe Linux / Unix / Mac (sau Cygwin pentru Windows):

find . -name "*.jpg" -exec jhead -ft {} + 

Sau pentru a găsi oricare dintre *.JPG *.JPEG *.jpg *.jpeg ... puteți încerca, de asemenea,

find . -iname "*.jp*g" -exec jhead -ft {} + 

Puteți utiliza, de asemenea, pentru a afișa doar toate fișierele care ar fi. .. găsit, fără a executa nicio altă comandă (cum ar fi jhead):

find . -iname "*.jp*g" 

Alte instrumente

Alte utilitare precum ExifTool sau Exiv2 sunt mult mai capabil, dar la prețul complexității. Nu-mi pot aminti niciodată din greșeală opțiunile potrivite pentru a face orice cu acestea și trebuie să mă uit la documentație de fiecare dată, dar jhead -ft este ușor de reținut cu mnemonic „fixare timp”.

ExifTool

Totuși, doar pentru completare, am căutat documentația și cu ExifTool , faceți acest lucru:

exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname 

(Eliminați -r dacă nu „Nu vreau recursivitate și dacă faceți acest lucru, puteți oferi, de asemenea, o listă de fișiere sau un wildcard în loc de directoryname.) Și aveți grijă cu acele ghilimele – dacă rulați acest lucru pe Windows, doriți " în loc de ".

Exiv2

Cu Exiv2 :

exiv2 -T rename *.jpg 

Atenție la faptul că cu litere mici -t (sau fără -T) Exiv2 va redenumi fișierul într-un nume nou pe baza marcajului de timp, ceea ce poate fi foarte confuz. Exiv2, de asemenea, nu face recursivitate.

Comentarii

  • Ai dreptate, acesta este opusul, dar infinit mai util 🙂
  • jhead este foarte util pentru aceasta – ȘI pentru multe alte manipulări de fișiere jpg. Aveți grijă când îl utilizați – este un instrument extrem de puternic care poate face o anumită cantitate de ravagii dacă este utilizat în mod greșit. Vă recomand să îl folosiți într-un fișier batch, astfel încât să faceți întotdeauna ceea ce intenționați și să testați mai întâi rezultatul pe un set de fișiere de testare.
  • +1, dar mi-am acordat răspunsul 😉 pot găsi o modalitate de a face exact ceea ce am întrebat …
  • @olibre Da, asta va funcționa pe Linux / Unix sau Mac.
  • Am observat câteva browsere de imagine prezente (diaporama ) imagini numai la ordinea numelui fișierului (nu la timpul modificării fișierului). În cele din urmă, folosesc marcajul temporal EXIF pentru a seta ora fișierului ȘI pentru a prefixa numele fișierului. Folosesc comanda find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Explicații: -name '[0-9][0-9]*' pentru a împiedica redenumirea fișierelor care au deja un prefix de dată ('[0-9][0-9] pentru a ține cont de ani și luni). -iname '*.jp*g' poate fi omis deoarece jhead procesează numai fișierele acceptate (numai fișiere JPEG). %f pentru a păstra numele fișierului original.

Răspuns

Irfanview și jhead vor face ambele ceea ce doriți.
Ambele gratuite.
Link-uri către ambele de mai jos.
jhead este condus de linia de comandă sau poate fi apelat prin alte procese.
Versiunea Irfanview poate fi invocată dintr-o linie de comandă sau intern într-un lot sau pe bază de fișier cu fișier.

Exemplul de mai jos pentru Irfanview arată cum să copiați în ambele direcții:


Irfanview

Permite schimbarea GUI sau a liniei de comandă a lotului sau transferul dată / oră al fișierului din EXIF în specificațiile fișierului sau invers (fără alte fișiere) modificări dacă se dorește).

Sursă: Fără de www.irfanview.com

Aceasta este MULTE mai ușor și mai rapid în practică după doar câteva utilizări, decât instrucțiunile de mai jos îl fac să apară. ex.
Pentru a converti data / ora unui singur fișier în valori EXIF necesită
Shift-J, Alt-F, Enter.
Vezi de ce prima dată durează mai mult.

Pentru a face acest lucru pentru un lot de fișiere complexe SOUNDS de învățat –
Necesită: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Sau: T, Ctrl- A, Shift-J, Enter) (oferă mai puține opțiuni)
DAR, de fapt, este aproape complet intuitiv după o mică utilizare – meniurile vă ghidează inițial până când se formează calea creierului.

GUI, pe fișier

 Options, JPG lossless rotation (Shift-J) Select "Apply original EXIF date/time to new file" Consider also selecting other options 

introduceți descrierea imaginii aici

GUI, unul sau mai multe fișiere ( prin vizualizare miniatură)

AVERTISMENT: ( Adăugat 2020!)
S-a subliniat că selectarea opțiunilor greșite poate obține un rezultat nedorit – de exemplu, toate fișierele de destinație setate la o singură dată selectată si timpul. Făcând-o corect nu este „prea greu” – dar, uitați-vă la diferitele casete de selectare și decideți care se potrivește cu ceea ce doriți să faceți.

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" 

introduceți descrierea imaginii aici

Din linia de comandă – aceasta este o „rotire” fără acțiune, cu excepția copierii datei / orei din EXIF în data și ora fișierului. Opusul poate fi realizat și dacă se dorește. :

  • i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)

  • Pentru a copia data / ora în direcție opusă ((filespec la EXIF)
    folosiți ca mai sus cu (0,0,1,0,0,0,0,0,0)


jhead

vei face aproape orice vă puteți imagina cu fișiere jpeg

Sursă: Gratuit de la http://www.sentex.net/~mwandel/jhead/

I utilizați un fișier batch ca mai jos. Sunt posibile alte opțiuni:

  • jhead -ft % 1 .jpg

Ei spun: Lucrurile pe care jhead le poate modifica într-un fișier exif jpeg

  • Imagini în dreapta sus în funcție de eticheta de rotație folosind jpegtran
    Setați sau ajustați relativ timestamp-urile exif interne
    Remediați data / ora în loturi mari de imagini
    Redenumește fișierele de ștampilare a datei sau datei conform exif timestamp
    Transferă anteturi exif între imagini
    Înlocuiți miniaturile din anteturile Exif
    Editați comentariile jpeg (dar nu și comentariile Exif)
    Ștergeți secțiunile exif sau comentarii din imaginile jpeg
    Creați un nou antet exif minim care conține data și miniatură

_________________________

Notă: august 2016: ” Utilizatorul anonim „a sugerat corect că o conversie sugerată nu a funcționat așa cum am spus. „Am adăugat extensiv la zona în cauză.

Comentarii

  • August 2016: ” Utilizator anonim ” a sugerat corect că o conversie sugerată nu a funcționat așa cum am spus. Am ‘ am adăugat extensiv în zona în cauză.
  • Dar fișierele brute?
  • @MichaelClark ‘ mă bucur că ai pus această întrebare :-). Observ că pare că toți ne-am adresat JPG fișiere și nu RAW. Îmi imaginez că ‘ mi-aș imagina că ați fi una dintre persoanele mai susceptibile de a întreba re cum să faceți acest lucru cu fișierele RAW :-).
  • ATENȚIE: Pasul 1 din ” GUI, unul sau mai multe fișiere (prin vizualizare miniatură) ” este înșelător: setează toate fișierele selectate la aceeași dată și oră (care nu este ceea ce a fost pus în întrebare). Numai pasul 2 duce la rezultatul solicitat.
  • @Christoph Mulțumesc. Am adăugat o notă generală de avertizare la începutul acea secțiune.

Răspuns

Doar un alt instrument EXIF din linia de comandă care poate modifica ultima dată modificată a fișierelor pentru a se potrivi cu timpul de fotografiere, pe baza metadei EXIF din fișierul imagine JPEG:

 exiv2 -T rename somedir/foo*.jpg 

Nu vă faceți griji, argumentul de comandă rename este ok acolo și nu dăunează.
Este doar că acțiunea de redenumire a fișierului este utilizată greșit pentru a crea doar efectul secundar al modificării marcajului de timp.

Răspunde

În timp ce chiar nu recomand să mă bazez pe data / ora fișierului atunci când vine vorba de imagini, puteți utiliza un instrument gratuit numit EXIF Date Changer pentru a seta în serie datele fișierelor tuturor imaginilor JPG.Setarea implicită va seta atât data creării, cât și data modificării datei fișierului la fotografia luată.

Motivul pentru care nu recomand acest lucru este data fișierului, este ușor de actualizat. Dacă editați imaginea, data modificată se actualizează. Dacă copiați imaginea, aceasta va deveni o dată nouă.

O soluție mult mai bună este redenumirea fișierelor pentru a include data / ora în numele fișierului. Aceasta permite totuși sortarea ușoară și funcționează bine cu imaginile stocate pe iPhone / dropbox.

Schimbător de date EXIF - Setați datele fișierelor până la data luării

Răspuns

Vedeți noul meu software gratuit „Photo Date Organizer”: http://photodateorganizer.sourceforge.net/

introduceți descrierea imaginii aici

Comentarii

  • Din pagina SourceForge: ” Adus de către: killdaclick „. Publicitatea propriilor produse nu este ‘ nu este interzis aici, dar ar trebui să clarificați care este afilierea dvs.
  • @PhilipKendall gata 🙂

Răspuns

FastStone Image Viewer poate face acest lucru (versiunea 4.9 utilizată) – selectați doar fișierele din panoul de miniaturi, faceți clic dreapta pe ele , selectați „Tools”> „Change Timestamp” – apoi puteți utiliza date EXIF (cu sau fără modificări) sau puteți utiliza data / ora manuală fixă personalizată.

Comentarii

  • Uau! Știu, nu știu asta. Folosesc instrumentul lor de captură a ecranului de ani de zile și nu am găsit nimic mai bun. Puteți obține ultima versiune gratuită aici ; ‘ nu am nevoie de niciuna dintre funcțiile pentru plată. De asemenea, am folosit vizualizatorul lor în trecut, dar nu știam că poate face asta.

Răspuns

Advance Renamer este cel mai bun software ușor de utilizat, care este foarte simplu.

  1. Glisați și fixați toate fotografiile în AR (Advance Renamer)

  2. Faceți clic pe (stânga sus) Adăugați metodă -> Nume nou

  3. Faceți clic pe una din imaginea din mijlocul de jos, veți vedea un buton ExifTool care afișează toate metadatele, faceți clic pe un atribut și veți obține eticheta În acest caz este <ExifTool:DateTimeOriginal>

  4. Copiați acest lucru și lipiți-l în Nume nou casetă text Puteți adăuga orice înainte sau după cum ar fi IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal> etc.

  5. Faceți clic pe Începeți lotul (Sus Dreapta) Acest lucru va redenumi toate fișiere cu data de ex. 2017_12_01 19_10_12 Este întotdeauna bine să aveți data inițială în numele fișierului, deoarece atributele pot fi pierdute, dar numele fișierelor vor fi câștigate.

  6. Trageți din nou toate redenumitele fișiere pe AR
  7. Faceți clic pe Metodă nouă -> Timestamp
  8. Verificați toate 3 casete de selectare Creare, modificare, accesare (accesarea uneori poate să nu funcționeze, doar debifați-o dacă se întâmplă)
  9. Selectați Model FileName și lipiți <Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Începeți lotul.
  11. Sunteți bine. Misiune îndeplinită

Răspuns

Am terminat mizerie cu datele fișierelor din biblioteca mea, dar nu a fost mulțumit de niciunul dintre instrumente. Unii nu acceptă recursivitatea directorului, unii nu pot modifica unele timestamp-uri specifice Windows, altele sunt dificil de utilizat.

Am făcut un nou instrument de linie de comandă pentru o singură sarcină – procesează recursiv toate fișiere dintr-un anumit director pentru a extrage data EXIF și pentru a seta data fișierului.

Instrumentul este multiplatformă.

Vă rugăm să consultați ExifDate2FS

Răspuns

Aceasta este o întrebare veche și se pare că există câteva sugestii care ar trebui să funcționeze bine, dar cel la care am ajuns pentru a sorta o problemă de comandă a fișierelor după o actualizare a telefonului Android a fost acesta.

  • Crank deschide Windows (pentru prima dată în vârstă)
  • Instalează ExtFS sau ceva ce poate citi partițiile ext4
  • Copiați fotografiile pe hard disk de pe Micro SD
  • Utilizați Schimbătorul de atribute ( https://www.petges.lu/home/ ) pentru a seta datele create / modificate la data EXIF
  • Whack card back in phone
  • Copiați fotografiile înapoi pe telefon prin MTP

Poate că acest lucru va fi util cuiva.

Răspunde

M-am înscris la StackExchange doar așa că aș putea să mulțumesc OP-ului pentru că a postat acest lucru și să-mi adaug activitatea d bc unele dintre comenzile de aici nu au funcționat pentru mine. Îmi pare rău, o să vorbesc despre procesul meu.

Mă aflu în mijlocul efortului „Să curățăm în cele din urmă arhivele foto”, deoarece lupta este reală, mai ales că iCloud și Google Photos le iau de pe dispozitivul dvs., iar gestionarea fișierelor are puțin de ce faceți-o în zilele noastre (și în vremuri anterioare, serviciile și produsele bune erau puțin capricioase și impuneau o întâmplare și o duplicare ciudate care necesitau eforturi reale pentru a le depăși.)

Am folosit Flickr pentru a scoate fotografii mașina mea când unitatea mea era prea mică pentru a le păstra pe toate. Am folosit Google Photos într-un singur cont din 2006, așa că am avut un set de duplicate aleatorii și imagini unice acolo, prin diferitele sale încarnări de încărcare.

Când fotografia iPhone a început cu adevărat, m-aș conecta prin USB, le import în Dropbox-ul meu, care le-ar redenumi cu o ștampilă dată-oră 🙌🏻, le-aș pune într-un folder an / lună cu un pic de curățenie pentru a sorta capturile de ecran și fotografiile de cumpărături, iar Google Photos a urmărit acel dosar de arhivă pentru a le încărca. Acest lucru a funcționat bine până când iCloud a capturat fotografiile de pe iPhone-ul meu și le-a făcut să se dovedească că necesită propriul flux de lucru. duplicarea a fost întotdeauna o problemă MARE, un instrument numit Gemini II în sfârșit a făcut posibil acest proiect de curățare și arhivare.

Pentru a-mi consolida arhiva pe o unitate externă, am decis să descărcați toate fotografiile, dar cele mai recente de pe iCloud (folosind Image Capture și un USB pe telefonul meu: nu sunt 100% fiabile), Flickr și Google, și curățați-le pe toate.

Așa am descoperit Date Exif: unele fotografii (doar unele) nu erau fișiere plate (vezi imaginea de mai jos) și și-au arătat metadatele în Finder. Majoritatea au vizibilă doar data creată-modificată. Wh la Am descărcat de pe Flickr (și unele de pe Google) salvat de parcă ar fi fost create și modificate în ziua în care le-am descărcat. Nu e bine. Unele aveau date EXIF vizibile, dar multe / cele mai multe păreau plate. Ștergeam duplicatele bc aveau marcajul de timp greșit (dacă erau de aceeași dimensiune sau mai mici, adică). Aflarea despre datele Exif și marcajul de timp m-a condus aici.

Pasul Dropbox a fost întotdeauna important pentru mine, deoarece IMG _ #### sau DSC #### au fost întotdeauna inutile. Cineva m-a întrebat de ce nu am sărit pasul Dropbox și am folosit Automater pentru a le redenumi. Automater nu are capacitatea pe care o pot vedea, dar datorită lui Jhead, acest lucru va merge în cele din urmă.

Am aflat cum să instalez mai întâi jhead și apoi să rulez jhead printr-un director recursiv și cel mai adesea, datele EXIF erau încă în fișierele foto. Rezultat: jhead a modificat datele fișierelor la datele din EXIF. Fără dezamăgiri.

În primul rând, pentru utilizatorii de Mac: urmați instrucțiunile de instalare din linia de comandă (Terminal). Dacă nu le găsiți pentru jhead, găsiți instrucțiunile generale de untar și sub în locația tarball-ului jhead. Acest lucru a funcționat, deoarece descărcarea și încercarea de instalare din linia de comandă cu siguranță nu au făcut-o. Apoi: asigurați-vă că instalați Xcode de pe App Store. Toți dezvoltatorii Apple au nevoie de acest program și face ca comenzile să funcționeze care altfel nu ar fi câștigat „t”. Este necesar pentru „make” și „install make”.

Folosind instrumentul jhead: nu sunt familiarizat cu citirea instrucțiunilor și manualelor Unix (man jhead), dar suficient de familiarizat cu CLI încât, dacă cineva a documentat ceva undeva, încerc opțiunile lor până când ceva funcționează.

Acest lucru nu a funcționat pentru mine:

[directorul pe care îl vreau]> găsi -name „* .jpg” -exec jhead -ft {} +

În altă parte, pe StackExchange, am găsit un șir de căutare recursivă diferit pentru care am ajuns să găsesc (avea o opțiune -print care nu părea necesară):

 find . | grep ".*[.]jpg" 

dar dacă aș adăuga comanda jhead, aș primi o eroare spunând că nu „înțelege” grep „

Deconstruirea termenilor de căutare prin adăugarea și eliminarea opțiunilor / variabilelor de căutare și încercarea de a obține jhead la face parte din acea comandă nu a funcționat până când am încercat o convenție veche:

jhead -ft ./*/*.jpg 

Aceasta a rulat printr-un întreg director lung și nu a funcționat scuipă foarte multe erori precum „nu conține marcaj de timp EXIF” sau „Eroare: timp” 0000: 00: 00 00:00:00 „: nu poate con vert to time Unix „

Când m-am uitat, a rămas doar o minoritate de timestampuri descărcate ieri. Așa că am testat acest lucru pe celelalte 10 foldere de fișiere pe care le aveam în folderul „duplicate”. Lucrurile din 2020 au revenit la 2004, 2013, 2012. Am aflat că, dacă rulați același director de două ori, nu veți mai obține ieșire a doua oară.

Apoi am folosit jhead pentru a redenumi fișierele în funcție de convenția de marcare a timpului. A funcționat ca un farmec; dacă numele fișierului original conținea semnificație pentru dvs. și doriți să îl păstrați, asigurați-vă că îl includeți în șirul de ștampilă de dată ales:

" "%f … *.jpg 

Acum mi se pare frustrant faptul că Finder este inconsistent la afișarea acestor informații când ar putea. Mai jos este un exemplu de fișier pentru care Finder afișează informații complete (mai puțin frecvente). Imagine a informațiilor Mac OS Finder ale datelor EXIF foto, complete

Comentarii

  • Bună, bun venit la Photo-SE. Aceste schimburi de stive sunt site-uri Q & A, în care fiecare răspuns încearcă să răspundă direct la întrebare. Nu sunt ca forumuri de discuții mai tipice, care sunt adesea subiect, iar postările sunt răspunsuri reciproce la fel de mult (adesea mai mult decât) la postarea originală. După cum am scris, răspunsul dvs. este foarte orientat spre discuție și narativ despre nevoile dvs. și procesul pentru un instrument de redenumire, mai degrabă decât să vă concentrați pe răspunsul la întrebarea așa cum ați fost pusă.
  • detaliu, motivul pentru care find -name '*.jpg' -exec jhead -ft {} + nu a funcționat ‘ este că find are nevoie de o cale pentru a căuta înainte de a se da expresii precum -name <...>. Am ‘ am actualizat răspunsul acceptat / cel mai votat pentru a remedia eroarea. Încercați asta în schimb: find . -name '*.jpg' -exec jhead -ft {} +
  • Ce vă face să credeți că nu ‘ am pornit comanda din interiorul căii directorul pe care l-am dorit? Dacă nu a funcționat ‘, nu a funcționat ‘. Mi-am găsit soluția. Mi-a făcut viața mai ușoară. Așa că l-am postat și l-am transmis mai departe. Dacă exemplele din lumea reală care explică lucruri neprogramatorilor nu sunt binevenite și sunt certat pentru că nu sunt suficient de tehnic, am câștigat ‘ t comentează din nou. Bravo.
  • Dacă l-ați tastat așa cum ați scris, atunci nu ‘ nu va funcționa comanda . Adică, eroare de intrare. Ceea ce am sugerat (find . -name '*.jpg' -exec jhead -ft {} +) este ceea ce ar trebui să utilizați dacă doriți să îl rulați din calea directorului dorit. Punctul ca cale înseamnă ” director local „. find necesită o cale de căutare inițială. Acest lucru este disponibil din paginile de manual ale find ‘.
  • În ceea ce privește explicarea lucrurilor către neprogramatori: răspunsurile bune sunt absolut dorite pe site-urile Stack Exchange. Cu condiția , totuși, că acestea sunt răspunsuri la întrebare. Vă rugăm să luați un moment pentru a vedea scurtul tur al site-ului pentru a vă face o idee despre diferența dintre site-urile Stack Exchange față de forumurile de internet orientate spre discuții. ul>

Răspuns

L-am sugerat autorului PhotoRenamer, care a răspuns …

PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php

Am adăugat un buton în fila „Opțiuni” din panglică .. De acolo, puteți selecta opțiunea pentru actualizarea stării de timp a fișierului fișierului.

Apropo, pentru a evita utilizarea măștii, adaug și un nou atribut de mască:% F. Dacă utilizați această mască simplă, fișierul este redenumit … cu propriul nume … Deci nu sunteți obligat să redenumiți fișierul pentru care doriți să actualizați atributele de timp ale fișierului …

Răspuns

Celălalt program gratuit este Google Picasa – puteți schimba cu ușurință data și ora pentru fiecare fotografiile:

introduceți descrierea imaginii aici

introduceți descrierea imaginii aici

Bun articol despre asta: Cum se schimbă data unei fotografii în Picasa la Când a fost făcută fotografia

Comentarii

  • Cum este această soluție lucrezi? PO dorește să schimbe data fișierului pentru a corespunde datei EXIF . Probabil că nu asta face Picasa.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *