Ik wil een directory specificeren en de software alle fotos in de directory en zijn sub-directories laten zoeken, en als ze EXIF datum / tijd bevatten, het stelt het tijdstempel van hun bestandssysteem zo in dat het overeenkomt met de EXIF.
Opmerkingen
- Tegenwoordig zou ik deze vraag natuurlijk stellen op softwareaanbevelingen – het heeft hier echter een aantal geweldige antwoorden gekregen.
Antwoord
Dit is het omgekeerde van Is er software die de EXIF-datums instelt op basis van de ‘ wijzigingsdatum van het bestand? , en ik “weet zeker dat alle programmas die daar worden vermeld van toepassing zullen zijn.
jhead
Van deze, voor deze zeer eenvoudige taak, jhead is mijn suggestie. Het commando
jhead -ft *.jpg
stelt bijvoorbeeld een aantal bestanden in zodat het tijdstempel van het bestand overeenkomt met EXIF.
jhead met find
, om door submappen te gaan
Om recursie in submappen uit te voeren, zou je het kunnen combineren met het find
commando beschikbaar op Linux / Unix / Mac (of Cygwin voor Windows):
find . -name "*.jpg" -exec jhead -ft {} +
Of om een van *.JPG *.JPEG *.jpg *.jpeg ...
je kunt het ook proberen
find . -iname "*.jp*g" -exec jhead -ft {} +
Je kunt ook find gebruiken om alle bestanden te laten zien die zouden zijn. .. gevonden, zonder een ander commando uit te voeren (zoals jhead):
find . -iname "*.jp*g"
Andere tools
Andere hulpprogrammas zoals ExifTool of Exiv2 zijn veel beter in staat, maar ten koste van complexiteit. Ik kan me nooit onvoorbereid de juiste opties herinneren om er iets mee te doen en moet elke keer naar de documentatie kijken, maar jhead -ft
is gemakkelijk te onthouden met het geheugensteuntje “fix time”.
ExifTool
Voor de volledigheid heb ik echter wel naar de documentatie gekeken en met ExifTool , doe dit:
exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname
(Verwijder de -r
als u geen “Ik wil geen recursie, en als je dat doet, kun je ook een lijst met bestanden of een jokerteken geven in plaats van directoryname
.) En wees voorzichtig met die aanhalingstekens – als je dit op Windows, wil je "
in plaats van "
.
Exiv2
Met Exiv2 :
exiv2 -T rename *.jpg
Pas op met kleine letters -t
(of zonder -T
) Exiv2 zal het bestand ook hernoemen naar een nieuwe naam op basis van het tijdstempel, wat erg verwarrend kan zijn. Exiv2 doet ook niet aan recursie.
Reacties
- Je hebt gelijk, dit is het tegenovergestelde maar oneindig veel nuttiger 🙂
- jhead is hiervoor erg handig – EN voor vele andere jpg-bestandsmanipulaties. Wees voorzichtig bij het gebruik ervan – het is een buitengewoon krachtig hulpmiddel dat bij misbruik een bepaalde hoeveelheid schade kan aanrichten. Ik raad aan om het in een batchbestand te gebruiken, zodat je altijd doet wat je van plan bent, en het resultaat eerst op een set testbestanden testen.
- +1 maar ik heb mezelf het antwoord toegekend 😉 Net zo anderen in de toekomst kan een manier vinden om precies te doen wat ik vroeg …
- @olibre Ja, dat zal werken op Linux / Unix of Mac.
- Ik heb gemerkt dat enkele fotobrowsers aanwezig zijn (diaporama ) afbeeldingen alleen op volgorde van bestandsnaam (niet op tijd van bestandswijziging). Ten slotte gebruik ik het EXIF-tijdstempel om de bestandstijd in te stellen EN om de bestandsnaam te prefixen. Ik gebruik het commando
find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +
. Verklaringen:-name '[0-9][0-9]*'
om te voorkomen dat bestanden die al een datumprefix hebben opnieuw hernoemd worden ('[0-9][0-9]
om rekening te houden met jaren en maanden).-iname '*.jp*g'
kan worden overgeslagen omdatjhead
alleen ondersteunde bestanden verwerkt (alleen JPEG-bestanden).%f
om de originele bestandsnaam te behouden.
Antwoord
Irfanview en jhead zullen allebei doen wat je wilt.
Beide gratis.
Links naar beide hieronder.
jhead is opdrachtregelgestuurd of kan worden aangeroepen door andere processen.
Irfanview-versie kan worden aangeroepen vanaf een opdrachtregel of intern in een batch of op een bestand per bestand.
Voorbeeld hieronder voor Irfanview laat zien hoe je in beide richtingen kunt kopiëren:
Irfanview
Staat GUI of opdrachtregelwijzigingen toe van batch of per bestand datum / tijd overdracht van EXIF naar bestandsspecificatie of vice versa (zonder ander bestand verandert indien gewenst).
Bron: Vrij van www.irfanview.com
Dit is VEEL eenvoudiger en sneller in de praktijk na slechts een paar keer gebruik dan de onderstaande instructies laten verschijnen. bijv.
Om de datum / tijd van een enkel bestand naar EXIF-waarden te converteren, heb je
Shift-J, Alt-F, Enter nodig.
Zien waarom de eerste paar keer langer duurt.
Om dit te doen voor een batch bestanden SOUNDS complex om te leren –
Het vereist: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Of: T, Ctrl- A, Shift-J, Enter) (geeft minder opties)
MAAR in feite is het bijna volledig intuïtief na een beetje gebruik – menus begeleiden u aanvankelijk totdat het breinpad zich vormt.
GUI, per bestand
Options, JPG lossless rotation (Shift-J) Select "Apply original EXIF date/time to new file" Consider also selecting other options
GUI, een of meer bestanden ( via miniatuurweergave)
WAARSCHUWING: ( Toegevoegd 2020!)
Er is op gewezen dat het selecteren van de verkeerde opties een ongewenst resultaat kan opleveren – bijv. Alle bestemmingsbestanden ingesteld op een enkele geselecteerde datum en tijd. Het goed doen is “niet te moeilijk” – maar kijk naar de verschillende selectievakjes en beslis welke past bij wat u wilt doen.
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"
Vanaf de opdrachtregel – dit is een “rotatie” zonder actie behalve het kopiëren van datum / tijd van EXIF naar bestandsdatum en -tijd. Het tegenovergestelde kan desgewenst ook worden bereikt. :
-
i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,1,0,0,0,0)
-
Om datum / tijd in tegengestelde richting te kopiëren ((bestandsspec. naar EXIF)
gebruik zoals hierboven met (0,0,1,0,0,0,0,0)
jhead
zal zo ongeveer alles doen wat u kan zich voorstellen met jpeg-bestanden
Bron: Vrij van http://www.sentex.net/~mwandel/jhead/
I gebruik een batchbestand zoals hieronder. Andere opties zijn mogelijk:
- jhead -ft % 1 .jpg
Ze zeggen: Dingen die jhead kan wijzigen in een exif jpeg-bestand
- Afbeeldingen rechtsboven volgens rotatietag met jpegtran
Interne exif-tijdstempels instellen of relatief aanpassen
Datum / tijd-offsets in grote batches corrigeren van afbeeldingen
Hernoem of datumstempelbestanden volgens exif-tijdstempel
Verplaats exif-headers tussen afbeeldingen
Vervang miniaturen binnen Exif-headers
Bewerk jpeg-opmerkingen (maar niet de Exif-opmerkingen)
Verwijder exif- of commentaarsecties van jpeg-afbeeldingen
Maak een nieuwe minimale exif-koptekst met de datum en miniatuur
_________________________
Opmerking: augustus 2016: ” Anonieme gebruiker suggereerde terecht dat een voorgestelde conversie niet werkte zoals ik al zei. Ik “heb uitgebreid toegevoegd aan het betreffende gebied.
Reacties
- Augustus 2016: ” Anonieme gebruiker ” suggereerde terecht dat de ene voorgestelde conversie niet werkte zoals ik al zei. Ik ‘ heb uitgebreid toegevoegd aan het betreffende gebied.
- Hoe zit het met onbewerkte bestanden?
- @MichaelClark Ik ‘ ben blij dat je die vraag hebt gesteld :-). Ik merk op dat we allemaal JPG lijken te hebben aangesproken bestanden en niet RAW. Ik ‘ zou me voorstellen dat je een van de meest waarschijnlijke mensen zou zijn om te vragen hoe je dit moet doen met RAW-bestanden :-).
- LET OP: Stap 1 onder ” GUI, een of meerdere bestanden (via miniatuurweergave) ” is misleidend: het stelt alle geselecteerde bestanden in op dezelfde datum en tijd (wat niet is gevraagd in de vraag). Alleen stap 2 leidt tot het gevraagde resultaat.
- @Christoph Bedankt. Ik heb een algemene waarschuwing toegevoegd aan het begin van die sectie.
Answer
Gewoon een andere EXIF-tool op de opdrachtregel die de laatste gewijzigde datum van bestanden kan wijzigen om overeen te komen met het tijdstip waarop de foto is gemaakt, gebaseerd op de EXIF-metada in het JPEG-afbeeldingsbestand:
exiv2 -T rename somedir/foo*.jpg
Geen zorgen, het commando-argument rename
is ok daar en kan geen kwaad.
Het is alleen dat de bestandsnaamwijziging wordt misbruikt om alleen het neveneffect te creëren van het wijzigen van de tijdstempel.
Antwoord
Hoewel ik echt niet aanbeveel om te vertrouwen op het bestand datum / tijd als het om uw afbeeldingen gaat, kunt u een gratis tool genaamd EXIF Date Changer gebruiken om de bestandsdatums van al uw JPG-afbeeldingen batchgewijs in te stellen.De standaardinstelling stelt zowel de aanmaakdatum als de datum waarop de bestandsdatum is gewijzigd in op de gemaakte foto.
De reden waarom ik dit niet aanbeveel, is dat de bestandsdatum gemakkelijk kan worden bijgewerkt. Als je de afbeelding bewerkt, kan de datum gewijzigd wordt bijgewerkt. Als u de afbeelding kopieert, krijgt deze een nieuwe datum.
Een veel betere oplossing is om de bestanden te hernoemen om de datum / tijd in de bestandsnaam zelf op te nemen. Dit maakt nog steeds gemakkelijk sorteren mogelijk en werkt goed met afbeeldingen die zijn opgeslagen op iPhones / dropbox.
Antwoord
Bekijk mijn nieuwe gratis software “Photo Date Organizer”: http://photodateorganizer.sourceforge.net/
Reacties
- Van de SourceForge-pagina: ” U aangeboden door: killdaclick “. Adverteren voor uw eigen producten is niet ‘ is hier verboden, maar je moet duidelijk maken wat je affiliatie is.
- @PhilipKendall done 🙂
Antwoord
FastStone Image Viewer kan dit doen (versie 4.9 gebruikt) – selecteer gewoon de bestanden in het miniaturenvenster, klik er met de rechtermuisknop op , selecteer “Extra”> “Tijdstempel wijzigen” – dan kunt u ofwel EXIF-gegevens (met of zonder wijzigingen) gebruiken of een hele aangepaste vaste handmatige datum / tijd gebruiken.
Opmerkingen
- Wauw! Dat wist ik niet, ik gebruik hun tool voor het vastleggen van schermen al jaren en heb niets beters gevonden. U kunt de laatste gratis versie hier krijgen; Ik op ‘ heb geen van de betaalde functies nodig. Ik heb in het verleden ook hun kijker gebruikt, maar wist niet dat hij dat kon.
Antwoord
Advance Renamer is de beste gebruiksvriendelijke software die heel eenvoudig is.
-
Sleep alle fotos naar AR (Advance Renamer)
-
Klik op (Linksboven) Methode toevoegen -> Nieuwe naam
-
Klik op een van de afbeeldingen onderaan in het midden. “U ziet een knop ExifTool die alle metadata toont, klik gewoon op een attribuut en je “krijgt de tag. In dit geval is het
<ExifTool:DateTimeOriginal>
-
Kopieer dit en plak in het Nieuwe naam tekstvak Je kunt alles voor of na toevoegen, zoals
IMG_<ExifTool:DateTimeOriginal>
,DSC_<ExifTool:DateTimeOriginal>
etc. -
Klik op Start batch (Top Right) Dit zal al uw bestanden met de datum Bijv. 2017_12_01 19_10_12 Het is altijd goed om de originele datum in de bestandsnaam te hebben, want attributen kunnen verloren gaan maar bestandsnamen zullen niet.
- Sleep opnieuw alle hernoemde bestanden naar AR
- Klik op Nieuwe methode -> Tijdstempel
- Alles aanvinken 3 selectievakjes Maken, Wijzigen, Toegang (soms werkt toegang mogelijk niet, schakel het gewoon uit als het gebeurt)
- Selecteer Bestandsnaampatroon en plak
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
- Start batch.
- Je bent goed. Missie volbracht
Antwoord
Ik had voltooid knoeien met bestandsdatums in mijn bibliotheek, maar was niet tevreden met een van de tools. Sommige ondersteunen geen directory-recursie, sommige kunnen sommige windows-specifieke tijdstempels niet wijzigen, sommige zijn moeilijk te gebruiken.
Ik heb een nieuwe gemaakt opdrachtregelprogramma voor een enkele taak – verwerk alles recursief bestanden in de gegeven map om de EXIF-datum uit te pakken en de bestandsdatum erop in te stellen.
Tool is platformonafhankelijk.
Zie ExifDate2FS
Antwoord
Dit is een oude vraag en het lijkt erop dat er een paar suggesties zijn die goed zouden moeten werken, maar degene bij wie ik arriveerde om een probleem met het bestellen van bestanden op te lossen na een upgrade van een Android-telefoon, was dit.
- Open Windows (voor het eerst in tijden)
- Installeer ExtFS of iets dat ext4-partities kan lezen
- Kopieer fotos naar de harde schijf van Micro SD
- Gebruik kenmerkwisselaar ( https://www.petges.lu/home/ ) om gemaakte / gewijzigde datums in te stellen op de EXIF-datum
- Whack-kaart terug in telefoon
- Kopieer fotos terug naar telefoon via MTP
Misschien is dit nuttig voor iemand.
Antwoord
Ik heb me net aangemeld bij StackExchange dus ik kon het OP bedanken voor het plaatsen van dit, en mijn workaroun toevoegen d bc sommige van de opdrachten hier werkten niet voor mij. Sorry, ik ga het hebben over mijn proces.
Ik zit midden in een poging om mijn fotoarchieven eindelijk eens op te ruimen, omdat de strijd echt is, vooral omdat iCloud en Google Fotos ze van je apparaat halen en bestandsbeheer weinig te doen heeft ermee te doen deze dagen (en in vroegere tijden waren goede diensten en producten een beetje eigenzinnig en dwongen ze een rare willekeur en duplicatie af die echt moeite kostte om te overwinnen.)
Ik heb Flickr gebruikt om fotos te verwijderen mijn computer toen mijn schijf te klein was om ze allemaal te bevatten. Ik gebruik Google Photos sinds 2006 op één account, dus ik had een reeks willekeurige duplicaten en unieke fotos daarboven, via de verschillende uploadincarnaties.
Toen iPhone-fotografie echt op gang kwam, “zou ik verbinding maken via USB, ze importeren in mijn Dropbox, die ze zou hernoemen met een datum-tijdstempel 🙌🏻, ze in een jaar / maand-map plaatsen met een beetje van beheer om schermafbeeldingen en winkelfotos te sorteren, en Google Fotos bekeek die archiefmap om ze te uploaden. Dit werkte goed totdat iCloud de fotos van mijn iPhone in beslag nam en het bleek dat het zijn eigen workflow vereiste.
Omdat duplicatie is altijd een GROOT probleem geweest, een tool genaamd Gemini II eindelijk maakte dit opschonings- en archiefproject mogelijk.
Om mijn archief op een externe schijf te consolideren, besloot ik om download alle fotos behalve de meest recente uit iCloud (met behulp van Image Capture en een USB naar mijn telefoon: niet 100% betrouwbaar), Flickr en Google, en ruim alles op.
Zo ontdekte ik Exif-gegevens: sommige fotos (slechts enkele) waren geen platte bestanden (zie onderstaande afbeelding) en toonden hun metagegevens in de Finder. De meeste hebben alleen de datum Gemaakt-Gewijzigd zichtbaar. Wh ik heb gedownload van Flickr (en sommige van Google) opgeslagen alsof ze zijn gemaakt en gewijzigd op de dag dat ik ze heb gedownload. Niet goed. Sommige hadden zichtbare EXIF-gegevens, maar veel / de meeste zagen er plat uit. Ik had duplicaten verwijderd omdat ze de verkeerde tijdstempel hadden (als ze dezelfde grootte of kleiner waren). Toen ik meer te weten kwam over Exif-gegevens en tijdstempel, kwam ik hier terecht.
De Dropbox-stap is altijd belangrijk voor me geweest omdat IMG _ #### of DSC #### altijd nutteloos is geweest. Iemand vroeg me waarom ik de Dropbox-stap niet heb overgeslagen en Automater heb gebruikt om ze te hernoemen. Automater heeft niet de mogelijkheid die ik kan zien, maar dankzij Jhead gaat dit eindelijk lukken.
Ik bedacht hoe ik eerst jhead moest installeren en vervolgens jhead recursief door een directory moest leiden en vaker wel dan niet, EXIF-gegevens bevonden zich nog in de fotobestanden. Resultaat: jhead veranderde de datums van de bestanden tot wat er in de EXIF-gegevens stond. Geen teleurstellingen.
Ten eerste, voor Mac-gebruikers: volg de untar-installatie-instructies vanaf de opdrachtregel (Terminal). Als je ze niet kunt vinden voor jhead, zoek dan de algemene untar instructies en sub op de locatie van de jhead tarball. Dit werkte, omdat downloaden en proberen te installeren vanaf de commandoregel dat zeker niet deed. Volgende: zorg ervoor dat u Xcode uit de App Store installeert. Alle Apple-ontwikkelaars hebben dit programma nodig en het zorgt ervoor dat commandos werken die anders “niet” zouden werken. Het is nodig voor “make” en “install make”.
De jhead-tool gebruiken: ik “ben niet bekend met het lezen van Unix-instructies en -handleidingen (man-jhead) maar ben bekend genoeg met CLI dat als iemand ergens iets gedocumenteerd heeft, ik hun opties probeer totdat iets werkt.
Dit werkte niet voor mij:
[directory die ik wil]> find -name “* .jpg” -exec jhead -ft {} +
Elders op StackExchange vond ik een andere recursieve zoekreeks waarvoor ik moest zoeken (het had een -print-optie die niet nodig leek):
find . | grep ".*[.]jpg"
maar als ik het commando jhead toevoeg, krijg ik een foutmelding dat het “grep” niet “begrijpt.
Het deconstrueren van zoektermen door zoekopties / variabelen toe te voegen en weg te nemen en te proberen jhead naar deel uitmaken van dat commando werkte niet “totdat ik een oude conventie probeerde:
jhead -ft ./*/*.jpg
Dit liep door een hele lange directory en het werkte niet spuug heel veel fouten uit, zoals bevat geen EXIF-tijdstempel of Fout: tijd 0000: 00: 00 00:00:00 : kan niet con vert to Unix time “
Toen ik keek, bleef slechts een minderheid van de gedownloade tijdstempels van gisteren over. Dus ik heb dit getest op de andere 10 mappen met bestanden die ik in mijn map “duplicaten” had. Dingen uit 2020 zijn teruggekeerd naar 2004, 2013, 2012. Ik heb geleerd dat als je twee keer dezelfde map doorloopt, je geen tweede keer uitvoer krijgt.
Daarna gebruikte ik jhead om mijn bestanden te hernoemen volgens de tijdstempelconventie. Het werkte als een charme; als de originele bestandsnaam een betekenis voor jou bevat en je deze wilt behouden, zorg er dan voor dat je deze opneemt in de door jou gekozen datumstempelreeks:
" "%f … *.jpg
Ik vind het nu frustrerend dat Finder inconsequent is in het weergeven van deze informatie wanneer het zou kunnen. Hieronder staat een voorbeeld van een bestand waarvoor Finder volledige informatie laat zien (ongebruikelijk).
Reacties
- Hallo, welkom bij Photo-SE. Deze Stack Exchanges zijn Q & A-sites, waar elk antwoord probeert de vraag direct te beantwoorden. Ze zijn niet zoals meer typische discussieforums, die vaak van threads zijn voorzien, en berichten zijn evenveel antwoorden op elkaar als (vaak meer dan) op het oorspronkelijke bericht. Zoals geschreven, is je antwoord erg discussie- en verhalend gericht op je behoeften en proces voor een tool voor het hernoemen, in plaats van je te concentreren op het beantwoorden van de vraag zoals gevraagd.
- Op een technische detail, de reden dat
find -name '*.jpg' -exec jhead -ft {} +
niet ‘ werkte, is omdatfind
een pad nodig heeft om te zoeken in voordat uitdrukkingen zoals-name <...>
worden gegeven. Ik ‘ heb het geaccepteerde / hoogst gestemde antwoord bijgewerkt om de fout te herstellen. Probeer in plaats daarvan dit:find . -name '*.jpg' -exec jhead -ft {} +
- Waarom denk je dat ik ‘ de opdracht niet start vanuit het pad van de directory die ik wilde? Als het ‘ niet werkte, werkte het ‘ niet. Ik heb mijn oplossing gevonden. Het maakte mijn leven gemakkelijker. Dus ik plaatste het en gaf het door. Als voorbeelden uit de echte wereld die dingen uitleggen aan niet-programmeurs ‘ niet welkom zijn, en ik word uitgescholden omdat ik niet technisch genoeg ben, dan heb ik ‘ t commentaar opnieuw. Bravo.
- Als je het hebt getypt zoals je schreef, daar ‘ zou het commando op geen enkele manier werken . Dat wil zeggen, invoerfout. Wat ik suggereerde (
find . -name '*.jpg' -exec jhead -ft {} +
) is wat je zou moeten gebruiken als je het zou willen draaien vanuit het pad van de directory die je wilde. De punt als pad betekent ” lokale directory “.find
vereist een startzoekpad. Dit is beschikbaar opfind
‘ s manpages. - Wat betreft het uitleggen van dingen aan niet-programmeurs: goede antwoorden zijn absoluut gewenst op Stack Exchange-sites. Mits echter dat het antwoorden zijn op de vraag. Neem even de tijd om de korte Sitetour te bekijken om een idee te krijgen van hoe Stack Exchange-sites anders zijn dan discussiegerichte internetforums.
Antwoord
Ik stelde het voor aan de auteur van PhotoRenamer, die antwoordde …
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
Ik voeg een knop toe in het tabblad Opties van het lint. Van daaruit kunt u de optie selecteren om de bestandstijdstatus van het bestand bij te werken.
Tussen haakjes, om het gebruik van een masker te vermijden, voeg ik ook toe een nieuw maskerattribuut:% F. Als u dit eenvoudige masker gebruikt, wordt het bestand hernoemd … met zijn eigen naam … U bent dus niet verplicht om het bestand te hernoemen waarvoor u de bestandstijdattributen wilt bijwerken …
Antwoord
Het andere gratis programma is Google Picasa – u kunt eenvoudig de datum en tijd voor alle de fotos:
Leuk artikel erover: Hoe u de datum van een foto in Picasa kunt wijzigen in wanneer de foto is gemaakt
Opmerkingen
- Hoe is deze oplossing werken? Het OP wil de bestands datum wijzigen zodat deze overeenkomt met de EXIF datum. Dat is waarschijnlijk niet wat Picasa doet.