Chci určit adresář a nechat software vyhledat všechny fotografie v adresáři a jeho podadresářích, a pokud obsahují datum / čas EXIF, nastavuje jejich časové razítko souborového systému tak, aby odpovídalo EXIF.

Komentáře

  • Samozřejmě, v dnešní době bych se na tuto otázku zeptal na softwarová doporučení – zde má několik skvělých odpovědí,

odpověď

Toto je inverzní funkce Existuje nějaký software, který nastaví data EXIF na základě data úpravy souboru ‚? a jsem si jist, že budou platit všechny zde uvedené programy.

jhead

Z nich, pro tento velmi jednoduchý úkol, jhead je můj návrh. Například příkaz

jhead -ft *.jpg 

nastaví spoustu souborů tak, aby časové razítko souboru odpovídalo EXIF.

hlava s find pro procházení podadresářů

Chcete-li provést rekurzi do podadresářů, můžete jej zkombinovat s příkazem find dostupným v systému Linux / Unix / Mac (nebo Cygwin pro Windows):

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

Nebo vyhledejte některý z *.JPG *.JPEG *.jpg *.jpeg ... můžete také vyzkoušet

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

Můžete také použít find k zobrazení všech souborů, které by byly. .. nalezeno, bez provedení jakéhokoli jiného příkazu (například jhead):

find . -iname "*.jp*g" 

Další nástroje

Jiné nástroje jako ExifTool nebo Exiv2 jsou mnohem schopnější, ale za cenu složitosti. Nikdy si nepamatuji správné možnosti, jak s nimi dělat cokoli a pokaždé si musím prohlédnout dokumentaci, ale jhead -ft je snadno zapamatovatelný pomocí mnemotechniky „fix time“.

ExifTool

Jen pro úplnost jsem se však podíval na dokumentaci a pomocí ExifTool , proveďte toto:

exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname 

(Pokud ne, odstraňte -r „Nechcete rekurzi, a pokud to uděláte, můžete místo directoryname také dát seznam souborů nebo zástupný znak.) A buďte opatrní s těmito uvozovkami – pokud znovu běžíte v systému Windows chcete " místo ".

Exiv2

s Exiv2 :

exiv2 -T rename *.jpg 

Pozor na malá písmena -t (nebo bez -T) Exiv2 také přejmenuje soubor na nový název na základě časového razítka, což může být velmi matoucí. Exiv2 také neprovádí rekurzi.

Komentáře

  • Máte pravdu, je to naopak, ale nekonečně užitečnější 🙂
  • jhead je pro to velmi užitečný – A pro mnoho dalších manipulací se soubory jpg. Při jeho používání buďte opatrní – jedná se o extrémně výkonný nástroj, který může při zneužití způsobit určité zmatky. Doporučuji jej použít v dávkovém souboru, takže vždy uděláte, co máte v úmyslu, a nejprve otestovat výsledek na testovací sadě souboru.
  • +1, ale odpověď jsem si udělil sám 😉 Jen tak v budoucnu ostatní dokážou najít způsob, jak udělat přesně to, co jsem požadoval …
  • @olibre Ano, to bude fungovat na Linuxu / Unixu nebo Macu.
  • Všiml jsem si některých prohlížečů obrázků (diaporama) ) obrázky pouze v pořadí podle názvu souboru (nikoli v době úpravy souboru). Nakonec používám časové razítko EXIF k nastavení času souboru A k předponě názvu souboru. Používám příkaz find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Vysvětlení: -name '[0-9][0-9]*' zabránit opětovnému přejmenování souborů, které již mají předponu data ('[0-9][0-9], aby se zohlednily roky a měsíce). -iname '*.jp*g' lze přeskočit, protože jhead zpracovává pouze podporované soubory (pouze soubory JPEG). %f zachovat původní název souboru.

Odpovědět

Irfanview a jhead si udělají, co chcete.
Oba zdarma.
Odkazy na oba níže.
jhead je řízeno příkazovým řádkem nebo jej lze vyvolat jinými procesy.
Verze Irfanview může být vyvolána z příkazového řádku nebo interně v dávce nebo na základě souboru po souboru.

Níže uvedený příklad pro Irfanview ukazuje, jak kopírovat v obou směrech:


Irfanview

Umožňuje změny GUI nebo příkazového řádku v dávce nebo podle data a času přenosu z EXIF do souboru nebo naopak (bez jiného souboru) změny, pokud je to požadováno).

Zdroj: Zdarma od www.irfanview.com

Toto je mnohem jednodušší a rychlejší v praxi se to projeví již po několika použitích, než jsou uvedeny níže. např.
Chcete-li převést datum a čas jednoho souboru na hodnoty EXIF, je třeba
Shift-J, Alt-F, Enter.
Zjištění, proč první několikrát trvá déle.

Chcete-li to udělat pro dávku souborů SOUNDS complex to learn –
Vyžaduje: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Nebo: T, Ctrl- A, Shift-J, Enter) (poskytuje méně možností)
ALE ve skutečnosti je to po úplném použití téměř zcela intuitivní – nabídky vás provedou zpočátku, dokud se nevytvoří mozková cesta.

grafické uživatelské rozhraní, na soubor

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

zde zadejte popis obrázku

grafické uživatelské rozhraní, jeden nebo více souborů ( přes zobrazení miniatur)

UPOZORNĚNÍ: ( Přidáno 2020!)
Bylo zdůrazněno, že výběrem nesprávných možností lze získat nežádoucí výsledek – např. Všechny cílové soubory nastavené na jedno vybrané datum a čas. Dělat to správně „není příliš těžké“ – ale podívejte se na různá zaškrtávací políčka a rozhodněte se, které z nich vyhovuje tomu, co chcete dělat.

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" 

zde zadejte popis obrázku

Z příkazového řádku – toto je „rotace“ bez ŽÁDNÉ akce kromě kopírování data a času z EXIF do data a času souboru. Pokud je to žádoucí, lze toho dosáhnout i opačně. :

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

  • Chcete-li zkopírovat datum a čas v opačném směru ((souborový soubor do EXIF)
    použijte jako výše s (0,0,1,0,0,0,0,0)


jhead

udělá téměř cokoli umíme si představit se soubory jpeg

Zdroj: Zdarma od http://www.sentex.net/~mwandel/jhead/

I použijte dávkový soubor, jak je uvedeno níže. Jsou možné i další možnosti:

  • jhead -ft % 1 .jpg

Říkají: Věci, které jhead může upravovat v souboru exif jpeg

  • Obrázky vpravo nahoře podle značky rotace pomocí jpegtran
    Nastavit nebo relativně upravit interní časová razítka exif
    Opravit posunutí data a času ve velkých dávkách obrázků
    Přejmenujte nebo zkopírujte soubory razítka podle časové značky exif
    Přenos záhlaví exif mezi obrázky
    Nahrazení miniatur uvnitř záhlaví Exif
    Úpravy komentářů JPEG (ale nikoli komentářů Exif)
    Odstranění sekcí EXIF nebo komentářů z obrázků JPEG
    Vytvoření nové minimální hlavičky EXIF obsahující datum a miniatura

_________________________

Poznámka: srpen 2016: “ Anonymní uživatel „správně navrhl, že jeden navrhovaný převod nefunguje, jak jsem řekl. Jsem do dané oblasti rozsáhle přidán.

Komentáře

  • Srpen 2016: “ Anonymní uživatel “ správně navrhl, že jedna z navrhovaných konverzí nefunguje, jak jsem řekl. ‚ jsem do dané oblasti přidal rozsáhle.
  • A co nezpracované soubory?
  • @MichaelClark Jsem ‚ rád, že jste položili tuto otázku :-). Všiml jsem si, že jsme všichni zřejmě oslovili JPG Soubory a ne RAW. Já si ‚ d představuji, že byste byli jedním z nejpravděpodobnějších lidí, kteří by se zeptali, jak to udělat se soubory RAW :-).
  • POZOR: Krok 1 v “ grafickém uživatelském rozhraní, jeden nebo více souborů (přes zobrazení miniatur) “ je zavádějící: nastaví všechny vybrané soubory na stejné datum a čas (což není to, co bylo uvedeno v otázce). Pouze krok 2 vede k požadovanému výsledku.
  • @Christoph díky. Na začátek dne jsem přidal obecnou varovnou poznámku ta sekce.

Odpověď

Jen další nástroj EXIF na příkazovém řádku, který dokáže změnit datum poslední úpravy souborů aby odpovídala době pořízení snímku na základě metad EXIF v obrazovém souboru JPEG:

 exiv2 -T rename somedir/foo*.jpg 

Žádné starosti, argument příkazu rename je v pořádku a neškodí.
Jde jen o to, že akce přejmenování souboru je zneužita pouze k vytvoření vedlejšího efektu změny časového razítka.

Odpověď

I když opravdu nedoporučuji spoléhat se na datum a čas souboru Pokud jde o vaše obrázky, můžete použít bezplatný nástroj s názvem EXIF Date Changer a hromadně nastavit data souborů všech vašich obrázků JPG.Ve výchozím nastavení se na pořízenou fotografii nastaví datum vytvoření i datum změny souboru.

Důvod, proč toto nedoporučuji, je datum souboru, se snadno aktualizuje. Pokud obrázek upravíte, datum změny se aktualizuje. Pokud zkopírujete obrázek, získá se nové datum.

Mnohem lepším řešením je přejmenovat soubory tak, aby obsahovaly datum a čas v samotném názvu souboru. To stále umožňuje snadné třídění a funguje dobře s obrázky uloženými v iPhonech / schránce.

EXIF Date Changer - Nastaví data souboru do data pořízení

Odpověď

Podívejte se na můj nový bezplatný software „Photo Date Organizer“: http://photodateorganizer.sourceforge.net/

zde zadejte popis obrázku

Komentáře

  • Ze stránky SourceForge: “ Přináší vám: killdaclick „. Inzerce vlastních produktů není ‚ to zde není zakázáno, ale měli byste si ujasnit, jaké je vaše přidružení.
  • @PhilipKendall hotovo 🙂

odpověď

Prohlížeč obrázků FastStone to dokáže (používá se verze 4.9) – stačí vybrat soubory v podokně miniatur, kliknout na ně pravým tlačítkem , vyberte „Nástroje“> „Změnit časové razítko“ – pak můžete buď použít data EXIF (s úpravami nebo bez nich) nebo použít zcela vlastní pevné manuální datum a čas.

Komentáře

  • Páni! Nevěděl jsem to. Používám jejich nástroj pro snímání obrazovky už roky a nenašel jsem nic lepšího. Poslední bezplatnou verzi získáte zde ; V ‚ nepotřebuji žádnou z funkcí pro placení. V minulosti jsem také používal jejich prohlížeč, ale nevěděl jsem, že by to mohl udělat.

Odpověď

Advance Renamer je nejlepší uživatelsky přívětivý software, který je velmi jednoduchý.

  1. Přetáhněte všechny fotografie do AR (Advance Renamer)

  2. Klikněte na (vlevo nahoře) Přidat metodu -> Nový název

  3. Klikněte na jedno z dolních středů obrázku, uvidíte tlačítko ExifTool , které zobrazí všechna metadata, stačí kliknout na atribut a vy „Získáte značku V tomto případě je to <ExifTool:DateTimeOriginal>

  4. Zkopírujte to a vložte do Nové jméno textové pole Před nebo za můžete přidat cokoli jako IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal> atd.

  5. Klikněte na Spustit dávku (horní Správně) Tím přejmenujete všechny své soubory s datem Např. 2017_12_01 19_10_12 Je vždy dobré mít v názvu souboru původní datum, protože by mohlo dojít ke ztrátě atributů, ale názvy souborů nevyhrály.

  6. Znovu přetáhněte všechny přejmenované soubory na AR
  7. Klikněte na Nová metoda -> Časové razítko
  8. Zkontrolovat vše 3 zaškrtávací políčka Vytvořit, Upravit, Přístup (Přístup někdy nemusí fungovat, pouze zrušte jeho zaškrtnutí, pokud k tomu dojde)
  9. Vyberte Vzor názvu souboru a vložte <Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Spustit dávku.
  11. Jsi dobrý. Mise splněna

Odpověď

Měl jsem kompletní nepořádek s daty souborů v mé knihovně, ale nebyl spokojen s žádným z nástrojů. Některé nepodporují žádnou rekurzi adresáře, některé nemohou upravovat některá časová razítka specifická pro Windows, některé se obtížně používají.

Vytvořil jsem nový nástroj příkazového řádku pro jeden úkol – rekurzivně zpracovat všechny soubory v daném adresáři pro extrahování data EXIF a nastavení data souboru.

Nástroj je multiplatformní.

Viz ExifDate2FS

Odpověď

Toto je stará otázka a vypadá to, že existuje několik návrhů, které by měly dobře fungovat, ale ten, ke kterému jsem přišel, abych po upgradu telefonu s Androidem vyřešil problém s objednáváním souborů, byl tento.

  • Klikni na otevřený Windows (poprvé ve věku)
  • Nainstaluj ExtFS nebo něco, co umí číst oddíly ext4
  • Kopírovat fotografie na pevný disk z Micro SD
  • Použít měnič atributů ( https://www.petges.lu/home/ ) pro nastavení vytvořených / upravených dat na datum EXIF
  • vracet kartu zpět do telefonu
  • kopírovat fotografie zpět do telefonu přes MTP

Možná to bude pro někoho užitečné.

Odpověď

Zaregistroval jsem se do StackExchange jen takže bych mohl poděkovat OP za zveřejnění tohoto a přidat své řešení d bc některé z příkazů zde nefungovaly pro mě. Omlouvám se, budu mluvit o mém procesu.

Jsem uprostřed snahy „Pojďme konečně vyčistit mé fotoarchivy“, protože boj je skutečný, zejména proto, že iCloud a Fotky Google je berou z vašeho zařízení a správa souborů má málo udělejte to dnes (a v dřívějších dobách byly dobré služby a produkty trochu svéhlavé a vynucovaly podivnou náhodnost a duplikaci, jejichž překonání vyžadovalo skutečné úsilí.)

Používám Flickr k získávání fotografií můj stroj, když byl můj disk příliš malý na to, abych je všechny pojal. Používám Fotky Google na jednom účtu od roku 2006, takže jsem měl nahoře sadu náhodných duplikátů a jedinečných obrázků, a to prostřednictvím různých inkarnací nahrávání.

Když fotografie z iPhonu opravdu začaly fungovat, připojil bych se pomocí USB a importoval je do svého Dropboxu, který by je přejmenoval pomocí razítka data a času 🙌🏻, vložil je do složky rok / měsíc s trochou kurátor na třídění snímků obrazovky a nakupování fotografií a Fotky Google sledovaly tuto složku archivu, aby je nahrála. Fungovalo to dobře, dokud iCloud nezachytil fotografie z mého iPhone a jejich získání nevyžadovalo vlastní pracovní postup.

Protože duplikace byla vždy VELKÝM problémem, nástroj zvaný Gemini II konečně umožnil tento projekt vyčištění a archivace.

Abych konsolidoval svůj archiv na externí jednotku, rozhodl jsem se stáhněte si všechny obrázky kromě nejnovějšího z iCloudu (pomocí Image Capture a USB do mého telefonu: ne 100% spolehlivé), Flickr a Google a vše vyčistěte.

Takto jsem zjistil Data Exif: některé fotografie (pouze některé) nebyly ploché soubory (viz obrázek níže) a zobrazila svá metadata ve Finderu. Většina má pouze viditelné datum Created-Modified. Wh v Stáhl jsem z Flickru (a některé z Google) uložené, jako kdyby byly vytvořeny a upraveny v den, kdy jsem je stáhl. Špatný. Některé měly viditelná data EXIF, ale mnoho / většina vypadala plochě. Odstranil jsem duplikáty, protože měly nesprávné časové razítko (pokud byly stejné velikosti nebo menší, to znamená). Dozvěděl jsem se zde o datech Exif a časovém razítku.

Krok Dropboxu pro mě byl vždy důležitý, protože IMG _ #### nebo DSC #### byly vždy k ničemu. Někdo se mě zeptal, proč jsem nevynechal krok Dropboxu a nepřejmenoval jsem jej pomocí Automateru. Automater nemá schopnost, kterou vidím, ale díky Jhead to konečně bude fungovat.

Přišel jsem na to, jak nejprve nainstalovat jhead a poté rekurzivně spustit jhead v adresáři a častěji než ne, data EXIF byla stále ve fotografických souborech. Výsledek: jhead změnil data souborů na to, co bylo v datech EXIF. Žádná zklamání.

Nejprve pro uživatele počítačů Mac: postupujte podle pokynů pro instalaci z příkazového řádku (Terminál). Pokud je pro jhead nenajdete, najděte obecné netarovní pokyny a sub v umístění jball tarball. Fungovalo to, protože stahování a pokus o instalaci z příkazového řádku rozhodně ne. Další: nezapomeňte nainstalovat Xcode z App Store. Všichni vývojáři společnosti Apple potřebují tento program, díky němuž fungují příkazy, které jinak nebudou „nutné“ pro „make“ a „install make“.

Používání nástroje jhead: Nejsem obeznámen s čtením unixových pokynů a příruček (man jhead), ale natolik dobře s CLI, že pokud někdo někde něco dokumentuje, zkouším jeho možnosti, dokud něco nefunguje.

Toto pro mě nefungovalo:

[adresář, který chci]> najít -name „* .jpg“ -exec jhead -ft {} +

Jinde na StackExchange jsem našel jiný řetězec rekurzivního vyhledávání, pro který jsem musel pracovat (měl možnost -print, která se nezdá nutná):

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

ale pokud jsem přidal příkaz jhead, dostal bych chybu, že nerozumím „grep“

Dekonstrukce hledaných výrazů přidáním a odebráním možností / proměnných vyhledávání a pokusem se dostat jhead na být součástí tohoto příkazu nepracoval, dokud jsem nezkusil starou konvenci:

jhead -ft ./*/*.jpg 

To proběhlo celým adresářem s dlouhým ishem a nepůsobilo to vyplivnout mnoho chyb jako „neobsahuje žádné časové razítko EXIF“ nebo „Chyba: čas“ 0000: 00: 00 00:00:00 „: nelze kon vert to Unix time “

Když jsem se podíval, zůstala jen menšina časových značek stažených včera. Testoval jsem to tedy na dalších 10 složkách souborů, které jsem měl ve složce „duplikáty“. Věci z roku 2020 se vrátily do let 2004, 2013 a 2012. Dozvěděl jsem se, že pokud dvakrát projdete stejným adresářem, nedostanete výstup podruhé.

Pak jsem pomocí jhead přejmenoval své soubory podle konvence časového razítka. Fungovalo to jako kouzlo; pokud pro vás původní název souboru obsahoval význam a chcete jej zachovat, nezapomeňte jej zahrnout do vybraného řetězce datového razítka:

" "%f … *.jpg 

Nyní mi připadá frustrující, že Finder nekonzistentně zobrazuje tyto informace, kdykoli je to možné. Níže je uveden příklad souboru, o kterém Finder zobrazuje úplné informace (neobvyklé). Obrázek vyhledávače Mac OS informace o datech EXIF fotografií, kompletní

Komentáře

  • Ahoj, vítejte na Photo-SE. Tato výměna zásobníku jsou stránky Q & A, kde se každá odpověď pokouší přímo odpovědět na otázku. Nejsou jako typičtější diskusní fóra, která jsou často rozdělena do několika vláken a příspěvky jsou vzájemnou odpovědí stejně (často více než) na původní příspěvek. Jak již bylo napsáno, vaše odpověď je spíše diskuse a vyprávění o vašich potřebách a procesu přejmenování nástroje, než aby se soustředila na zodpovězení otázky, jak byla položena.
  • Na technické detail, důvod find -name '*.jpg' -exec jhead -ft {} + nepracoval ‚ práce je ten, že find potřebuje cestu k hledání in before jsou uvedeny výrazy jako -name <...>. Aktualizoval jsem ‚ přijatou / nejvyšší hlasovanou odpověď, abych chybu opravil. Zkuste to místo toho: find . -name '*.jpg' -exec jhead -ft {} +
  • Proč si myslíte, že jsem ‚ nespustil příkaz z cesty adresář, který jsem chtěl? Pokud to ‚ t nefungovalo, ‚ to nefungovalo. Našel jsem své řešení. Ulehčilo mi to život. Tak jsem to zveřejnil a předal dál. Pokud příklady z reálného světa, které vysvětlují věci neprogramátorům, nejsou ‚ vítány a já se nadávám, že nejsem dostatečně technický, vyhrál jsem ‚ t komentář znovu. Bravo.
  • Pokud jste to zadali tak, jak jste psali, tak ‚ neexistuje, že by příkaz fungoval . Tj. Chyba vstupu. To, co jsem navrhl (find . -name '*.jpg' -exec jhead -ft {} +), je to, co byste museli použít, pokud byste jej chtěli spustit z cesty do adresáře, který jste chtěli. Tečka jako cesta znamená “ místní adresář „. find vyžaduje počáteční vyhledávací cestu. To je k dispozici na stránkách find ‚ s.
  • Co se týká vysvětlování věcí neprogramátorům: dobré odpovědi jsou absolutně požadované na stránkách Stack Exchange. Za předpokladu , že se však jedná o odpovědi na otázku. Věnujte prosím chvíli krátkému Prohlídce webu , abyste získali představu o tom, jak se stránky Stack Exchange liší od diskusních internetových fór.

Odpověď

Navrhl jsem to autorovi PhotoRenamer, který odpověděl …

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

Přidám tlačítko do záložka „Možnosti“ na pásu karet. Odtud můžete vybrat možnost aktualizace stavu času souboru u souboru.

Mimochodem, abych se vyhnul použití masky, přidám také nový atribut masky:% F. Pokud použijete tuto jednoduchou masku, soubor se přejmenuje … s vlastním jménem … Takže nejste povinni přejmenovat soubor, pro který chcete aktualizovat atributy času souboru …

odpověď

Druhým bezplatným programem je Google Picasa – můžete snadno hromadně změnit datum a čas pro všechny fotky:

zde zadejte popis obrázku

sem zadejte popis obrázku

Pěkný článek o tom: Jak změnit datum fotografie v Picase na dobu pořízení fotografie

Komentáře

  • Jak je toto řešení pracovní ? OP chce změnit datum souboru tak, aby odpovídalo datu EXIF . To pravděpodobně Picasa nedělá.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *