Jeg vil angive et bibliotek og få softwaren til at finde alle fotos i biblioteket og dets underkataloger, og hvis de indeholder EXIF-dato / tid, det indstiller deres filsystem tidsstempel til at matche EXIF.

Kommentarer

  • Selvfølgelig vil jeg i dag stille dette spørgsmål til softwareanbefalinger – det har dog nogle gode svar her

Svar

Dette er det omvendte af Er der nogen software, der indstiller EXIF-datoerne baseret på filen ‘ s ændringsdato? , og jeg er sikker på, at alle de programmer, der er anført der, vil gælde.

jhead

Af disse, til denne meget enkle opgave, jhead er mit forslag. F.eks. indstiller kommandoen

jhead -ft *.jpg 

en masse filer, så filens tidsstempel matcher EXIF.

jhead med find, til at gå gennem underkataloger

For at udføre rekursion i underkataloger, kan du kombinere det med kommandoen find tilgængelig på Linux / Unix / Mac (eller Cygwin til Windows):

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

Eller for at finde nogen af *.JPG *.JPEG *.jpg *.jpeg ... du kan også prøve

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

Du kan også bruge find til bare at vise alle de filer, der ville være. .. fundet uden at udføre nogen anden kommando (som jhead):

find . -iname "*.jp*g" 

Andre værktøjer

Andre hjælpeprogrammer som ExifTool eller Exiv2 er meget mere i stand, men til prisen for kompleksitet. Jeg kan aldrig huske direkte de rigtige muligheder for at gøre noget med dem og er nødt til at se på dokumentationen hver gang, men jhead -ft er let at huske med mnemonic “fix time”.

ExifTool

Bare for fuldstændighed kiggede jeg dog på dokumentationen og med ExifTool , gør dette:

exiftool -r "-DateTimeOriginal>FileModifyDate" directoryname 

(Fjern -r hvis du ikke “t ønsker rekursion, og hvis du gør det, kan du også give en liste over filer eller et jokertegn i stedet for directoryname.) Og vær forsigtig med disse citater – hvis du kører dette i Windows, du vil have " i stedet for ".

Exiv2

With Exiv2 :

exiv2 -T rename *.jpg 

Pas på, at med små bogstaver -t (eller uden nogen -T) Exiv2 omdøber også filen til et nyt navn baseret på tidsstemplet, hvilket kan være meget forvirrende. Exiv2 gør heller ikke rekursion.

Kommentarer

  • Du har ret, det er det modsatte, men uendeligt mere nyttigt 🙂
  • jhead er meget nyttigt til dette – OG til mange andre manipulationer af jpg-filer. Vær forsigtig, når du bruger den – det er et ekstremt kraftfuldt værktøj, der kan skabe en vis kaos, hvis det misbruges. Jeg anbefaler at bruge den i en batchfil, så du altid gør, hvad du har til hensigt, og først tester resultatet på et testfilssæt.
  • +1 men jeg tildelte mig selv svaret 😉 Bare så andre i fremtiden kan finde en måde at gøre præcis, hvad jeg spurgte …
  • @olibre Ja, det fungerer på Linux / Unix eller Mac.
  • Jeg har bemærket nogle tilstedeværende billedbrowsere (diaporama ) billeder kun i filnavnrækkefølge (ikke på filændringstid). Endelig bruger jeg EXIF-tidsstemplet til at indstille filtiden OG til at prefikse filnavnet. Jeg bruger kommando find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Forklaringer: -name '[0-9][0-9]*' for at forhindre omdøbning af filer, der allerede har et datapræfiks ('[0-9][0-9] for at tage højde for år og måneder). -iname '*.jp*g' kan springes over, fordi jhead kun behandler understøttede filer (kun JPEG-filer). %f for at beholde det originale filnavn.

Svar

Irfanview og jhead vil begge gøre, hvad du vil.
Begge gratis.
Links til begge nedenfor.
jhead er kommandolinjedrevet eller kan kaldes af andre processer.
Irfanview-version kan påberåbes fra en kommandolinje eller internt i en batch eller på en fil efter filbasis.

Eksempel nedenfor for Irfanview viser, hvordan man kopierer i begge retninger:


Irfanview

Tillader GUI- eller kommandolinjeskift af batch eller pr. filoverførsel dato / klokkeslæt fra EXIF til filspecifikation eller omvendt (uden anden fil ændres, hvis det ønskes).

Kilde: Gratis fra www.irfanview.com

Dette er MYE lettere og hurtigere i praksis efter blot nogle få anvendelser end nedenstående instruktioner får det til at vises. fx
For at konvertere en enkelt fils dato / tid til EXIF-værdier kræves
Shift-J, Alt-F, Enter.
Se hvorfor de første par gange tager længere tid.

For at gøre dette for en batch af filer SOUNDS komplekse at lære –
Det kræver: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Eller: T, Ctrl- A, Shift-J, Enter) (giver færre muligheder)
MEN faktisk er det næsten intuitivt efter lidt brug – menuer guider dig oprindeligt, indtil hjernestien dannes.

GUI, pr. Fil

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

indtast billedebeskrivelse her

GUI, en eller flere filer ( via miniaturevisning)

ADVARSEL: ( Tilføjet 2020!)
Det er blevet påpeget, at valg af de forkerte indstillinger kan få et uønsket resultat – f.eks. Alle destinationsfiler indstillet til en enkelt valgt dato og tid. At gøre det rigtigt er “ikke for hårdt” – men se på de forskellige afkrydsningsfelter og bestem hvilken der passer til det, du ønsker at gøre.

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" 

indtast billedebeskrivelse her

Fra kommandolinjen – dette er en “roter” med INGEN handling undtagen at kopiere dato / tid fra EXIF til fildato og -tid. Det modsatte kan også opnås, hvis det ønskes. :

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

  • For at kopiere dato / tid i modsat retning ((filespec til EXIF)
    brug som ovenfor med (0,0,1,0,0,0,0,0)


jhead

vil gøre næsten alt hvad du vil kan forestille sig med jpeg-filer

Kilde: Gratis fra http://www.sentex.net/~mwandel/jhead/

I brug en batchfil som nedenfor. Andre muligheder er mulige:

  • jhead -ft % 1 .jpg

De siger: Ting, jhead kan ændre i en exif jpeg-fil

  • Højre billeder i henhold til rotationsmærke ved hjælp af jpegtran
    Indstil eller relativjuster interne exif-tidsstempler
    Fix dato / tidsforskydninger i store batches af billeder
    Omdøb eller stempelfiler efter exif tidsstempel
    Overfør exif-overskrifter mellem billeder
    Erstat miniaturer inde i Exif-overskrifter
    Rediger jpeg-kommentarer (men ikke Exif-kommentarer)
    Slet exif- eller kommentarsektioner fra jpeg-billeder
    Opret ny minimal exif-overskrift, der indeholder dato og miniaturebillede

_________________________

Bemærk: August 2016: ” En anonym bruger “foreslog korrekt, at en foreslået konvertering ikke fungerede som jeg sagde. Jeg har i vid udstrækning føjet til det pågældende område.

Kommentarer

  • August 2016: ” Anonym bruger ” foreslog korrekt, at en foreslået konvertering ikke fungerede som sagt. Jeg ‘ har i vid udstrækning føjet til det pågældende område.
  • Hvad med rå filer?
  • @MichaelClark I ‘ glæder mig, at du stillede det spørgsmål :-). Jeg bemærker, at vi alle ser ud til at have adresseret JPG filer og ikke RAW. Jeg ‘ forestiller mig, at du ville være en af de mere sandsynlige mennesker, der spurgte, hvordan man gør dette med RAW-filer :-).
  • PAS PÅ: Trin 1 under ” GUI, en eller flere filer (via miniaturevisning) ” er vildledende: den indstiller alle valgte filer til samme dato og tidspunkt (hvilket ikke er det, der blev stillet i spørgsmålet). Kun trin 2 fører til det ønskede resultat.
  • @Christoph Tak. Jeg tilføjede en generel advarsel i starten af dette afsnit.

Svar

Bare et andet EXIF-værktøj til kommandolinje, der kan ændre den sidst ændrede fildato for at matche tidspunktet for at tage billedet, baseret på EXIF-metadoen i JPEG-billedfilen:

 exiv2 -T rename somedir/foo*.jpg 

Ingen bekymringer, kommandoargumentet rename er ok der og gør ingen skade.
Det er bare, at filens omdøbningshandling misbruges for kun at skabe bivirkningen ved at ændre tidsstemplet.

Svar

Selvom jeg virkelig ikke anbefaler at stole på filens dato / tid når det kommer til dine billeder, kan du bruge et gratis værktøj kaldet EXIF Date Changer til batchindstilling af fildatoer for alle dine JPG-billeder.Standardindstillingen indstiller både den oprettede dato og den dato, der er ændret til datoen for det foto, der blev taget.

Årsagen til, at jeg ikke kan anbefale, at dette er fildatoen, opdateres let. Hvis du redigerer billedet, den ændrede dato opdateres. Hvis du kopierer billedet, får den en ny dato.

En meget bedre løsning er at omdøbe filerne for at inkludere datoen / klokkeslættet i selve filnavnet. Dette giver stadig mulighed for let sortering og fungerer godt med billeder gemt på iPhones / dropbox.

EXIF Date Changer - Indstil fildatoer til den dato, de er taget

Svar

Tjek min nye gratis software “Photo Date Organizer”: http://photodateorganizer.sourceforge.net/

indtast billedbeskrivelse her

Kommentarer

  • Fra SourceForge-siden: ” Bragt til dig af: killdaclick “. Annoncering af dine egne produkter er ikke ‘ t forbudt her, men du bør gøre det klart, hvad din tilknytning er.
  • @PhilipKendall færdig 🙂

Svar

FastStone Image Viewer kan gøre dette (version 4.9 bruges) – vælg bare filerne i miniatureruden, højreklik på dem , vælg “Værktøjer”> “Skift tidsstempel” – så kan du enten bruge EXIF (med eller uden ændringer) data eller bruge helt speciel fast manuel dato / tid.

Kommentarer

  • Wow! Det vidste jeg ikke. Jeg har brugt deres skærmoptagelsesværktøj i årevis og har ikke fundet noget bedre. Du får ikke den sidste gratis version her ; Jeg på ‘ behøver ikke nogen af betalingsfunktionerne. Jeg har også brugt deres seer tidligere, men vidste ikke, at det kunne gøre det.

Svar

Advance Renamer er den bedste brugervenlige software, som er meget enkel.

  1. Træk og slip alle fotos til AR (Advance Renamer)

  2. Klik på (øverst til venstre) Tilføj metode -> Nyt navn

  3. Klik på et af billedet nederst i midten, du vil se en knap ExifTool som viser alle metadata bare klik på en attribut, og du vil få tagget. I dette tilfælde er det <ExifTool:DateTimeOriginal>

  4. Kopier dette og indsæt i Nyt navn tekstboks Du kan tilføje noget før eller efter som IMG_<ExifTool:DateTimeOriginal>, DSC_<ExifTool:DateTimeOriginal> osv.

  5. Klik på Start batch (Top Højre) Dette omdøber alle dine filer med datoen F.eks. 2017_12_01 19_10_12 Det er altid godt at have den originale dato i filnavnet, fordi attributter kan gå tabt, men filnavne vandt ikke.

  6. Træk igen alle omdøbte filer videre til AR
  7. Klik på Ny metode -> Tidsstempel
  8. Marker alt 3 afkrydsningsfelter Opret, rediger, adgang (Adgang til tider fungerer muligvis ikke bare fjern markeringen, hvis det sker)
  9. Vælg Filnavn Mønster og indsæt <Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Start batch.
  11. Du er god. Mission udført

Svar

Jeg havde komplet rod med fildatoer i mit bibliotek, men var ikke tilfreds med noget af værktøjet. Nogle understøtter ingen katalogrekursion, andre kan ikke ændre nogle Windows-specifikke tidsstempler, andre er svære at bruge.

Jeg lavede en ny kommandolinjeværktøj til en enkelt opgave – behandl alt rekursivt filer i det givne bibliotek for at udtrække EXIF-dato og indstille fildato til den.

Værktøjet er tværgående.

Se ExifDate2FS

Svar

Dette er et gammelt spørgsmål, og det ser ud til, at der er et par forslag, der skal fungere godt, men den, jeg ankom til for at sortere et filbestillingsproblem efter en Android-telefonopgradering, var dette.

  • Start Windows op (for første gang i evigheder)
  • Installer ExtFS eller noget, der kan læse ext4-partitioner
  • Kopier fotos til harddisk fra Micro SD
  • Brug Attribut Changer ( https://www.petges.lu/home/ ) for at indstille oprettede / modificerede datoer til EXIF-datoen
  • Whack-kort tilbage i telefonen
  • Kopier fotos tilbage til telefonen via MTP

Måske vil dette være nyttigt for nogen.

Svar

Jeg tilmeldte mig kun StackExchange så jeg kunne takke OP for at have sendt dette og tilføje min arbejdsgruppe d bc nogle af kommandoerne her fungerede ikke for mig. Undskyld, jeg vil tale om min proces.

Jeg er midt i en “Lad os endelig rydde op i mine billedarkiver”, da kampen er reel, især da iCloud og Google Fotos tager dem fra din enhed, og filhåndtering har lidt at gør med det i disse dage (og i tidligere tider var gode tjenester og produkter lidt afskyelige og håndhævede en underlig tilfældighed og duplikering, der krævede reel indsats for at overvinde.)

Jeg har brugt Flickr til at få fotos væk min maskine, da mit drev var for lille til at holde dem alle. Jeg har brugt Google Fotos på en konto siden 2006, så jeg havde et sæt tilfældige duplikater og unikke billeder deroppe gennem dens forskellige uploadinkarnationer.

Når iPhone-fotografering virkelig begyndte at køre, ville jeg oprette forbindelse via USB, importere dem til min Dropbox, som ville omdøbe dem med et dato-tidsstempel 🙌🏻, sætte dem i en år / måned-mappe med en smule af kurater for at sortere skærmbilleder og shoppingfotos, og Google Fotos så den arkivmappe for at uploade dem. Dette fungerede godt, indtil iCloud beslaglagde billederne fra min iPhone og det viste sig, at de krævede sin egen arbejdsgang.

Fordi duplikering har altid været et STOR problem, et værktøj kaldet Gemini II endelig muliggjorde dette oprydnings- og arkivprojekt.

For at konsolidere mit arkiv på et eksternt drev besluttede jeg at download alle billeder, men de nyeste fra iCloud (ved hjælp af Image Capture og en USB til min telefon: ikke 100% pålidelig), Flickr og Google, og ryd det hele op.

Sådan opdagede jeg Exif-data: nogle fotos (kun nogle) var ikke flade filer (se billedet nedenfor) og viste deres metadata i Finder. De fleste har kun den oprettede-ændrede dato synlig. Wh kl. Jeg downloadede fra Flickr (og nogle fra Google) gemt som om de blev oprettet og ændret den dag jeg downloadede dem. Ikke godt. Nogle havde synlige EXIF-data, men mange / de fleste så flade ud. Jeg havde slettet dubletter f.Kr. de havde den forkerte tidsstempel (hvis de var af samme størrelse eller mindre, det vil sige). At finde ud af Exif-data og tidsstempel førte mig her.

Dropbox-trinnet har altid været vigtigt for mig, fordi IMG _ #### eller DSC #### altid har været ubrugelig. Nogen spurgte mig, hvorfor jeg ikke sprang Dropbox-trinnet og brugte Automater til at omdøbe dem. Automater har ikke den evne, jeg kan se, men takket være Jhead vil dette endelig fungere.

Jeg regnede ud, hvordan jeg først skulle installere jhead og derefter køre jhead gennem et bibliotek rekursivt, og oftere end ikke var EXIF-data stadig i fotofilerne. Resultat: jhead ændrede datoerne for filerne til det, der var i EXIF-dataene. Ingen skuffelser.

Først for Mac-brugere: Følg installationsinstruktionerne til untar fra kommandolinjen (Terminal). Hvis du ikke finder dem til jhead, skal du finde generelle untar-instruktioner og sub i placeringen af jhead tarball. Dette fungerede, fordi download og forsøg på at installere fra kommandolinjen bestemt ikke gjorde det. Næste: Sørg for at installere Xcode fra App Store. Alle Apple-udviklere har brug for dette program, og det får kommandoer til at fungere, der ellers ikke ”t. Det er nødvendigt for” make ”og“ install make ”.

Brug af jhead-værktøjet: Jeg er ikke fortrolig med at læse Unix-instruktioner og manualer (man jhead), men jeg er fortrolig med CLI, at hvis nogen har dokumenteret noget et eller andet sted, prøver jeg deres muligheder, indtil noget fungerer.

Dette fungerede ikke for mig:

[katalog, som jeg vil have]> find-navn “* .jpg” -exec jhead -ft {} +

Andetsteds på StackExchange fandt jeg en anden streng rekursiv søgestreng, som jeg kom til at arbejde for at finde (den havde en -print-indstilling, der ikke syntes nødvendig):

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

men hvis jeg tilføjede jhead-kommandoen, ville jeg få en fejl, der sagde, at den ikke forstod “grep”

Dekonstruktion af søgeudtryk ved at tilføje og fjerne søgemuligheder / variabler og forsøge at få jhead til være en del af denne kommando fungerede ikke, før jeg prøvede en gammel konvention:

jhead -ft ./*/*.jpg 

Dette løb gennem en hel lang-mappe og det fungerede ikke spytte meget fejl ud som “indeholder ingen EXIF tidsstempel” eller “Fejl: Tid” 0000: 00: 00 00:00:00 “: kan ikke con vert til Unix-tid “

Da jeg kiggede, var der kun et mindretal af tidsstempler, der blev downloadet i går. Så jeg testede dette på de andre 10 mapper med filer, jeg havde i min “duplikater” -mappe. Ting dateret 2020 vendte tilbage til 2004, 2013, 2012. Jeg lærte, at hvis du løber gennem den samme mappe to gange, får du ikke output en anden gang.

Så brugte jeg jhead til at omdøbe mine filer i henhold til tidsstempelkonventionen. Det fungerede som en charme. Hvis det originale filnavn indeholdt betydning for dig, og du vil beholde det, skal du sørge for at medtage dette i din valgte dato-stempelstreng:

" "%f … *.jpg 

Jeg finder det nu frustrerende, at Finder er inkonsekvent med at vise denne info, når det kunne. Nedenfor er et eksempel på en fil, som Finder viser komplette oplysninger for (usædvanlig). Billede af Mac OS Finder-oplysninger om EXIF-foto-foto, komplet

Kommentarer

  • Hej, velkommen til Photo-SE. Denne stakudveksling er Q & A-steder, hvor hvert svar forsøger at besvare spørgsmålet direkte. De er ikke som mere typiske diskussionsfora, som ofte er trådede, og indlæg er svar på hinanden så meget som (ofte mere end) på det oprindelige indlæg. Som skrevet er dit svar meget diskussions- og fortællingsorienteret om dine behov og proces til et omdøbningsværktøj snarere end at fokusere på at besvare spørgsmålet som stillet.
  • På et teknisk detalje, årsagen til, at find -name '*.jpg' -exec jhead -ft {} + ikke ‘ t fungerer, er fordi find har brug for en sti til at søge inden udtryk som -name <...> gives. Jeg ‘ har opdateret det accepterede / højest stemt svar for at rette fejlen. Prøv dette i stedet: find . -name '*.jpg' -exec jhead -ft {} +
  • Hvad får dig til at tro, at jeg ikke ‘ t startede kommandoen inden for stien til det katalog, jeg ville have? Hvis det ikke ‘ t fungerede, fungerede det ikke ‘ t. Jeg fandt min løsning. Det gjorde mit liv lettere. Så jeg sendte det og sendte det videre. Hvis virkelige eksempler, der forklarer ting til ikke-programmører, ikke er ‘ ikke velkomne, og jeg bliver skældt ud for ikke at være teknisk nok, vandt jeg ‘ t kommentar igen. Bravo.
  • Hvis du skrev det som du skrev, så er der ‘ ingen måde, kommandoen fungerer på . F.eks. Inputfejl. Hvad jeg foreslog (find . -name '*.jpg' -exec jhead -ft {} +) er, hvad du skal bruge, hvis du vil køre det fra stien til den ønskede mappe. Prikken som sti betyder ” lokal mappe “. find kræver en startende søgesti. Dette er tilgængeligt fra find ‘ s man-sider.
  • Med hensyn til at forklare ting til ikke-programmører: gode svar er absolut ønsket på Stack Exchange-websteder. Forudsat dog, at de er svar på spørgsmålet. Brug et øjeblik til at se den korte Site Tour for at få en idé om, hvordan Stack Exchange-websteder er forskellige fra diskussionsorienterede internetfora.

Svar

Jeg foreslog det til forfatteren af PhotoRenamer, der svarede …

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

Jeg tilføjer en knap i fanen Valgmuligheder i båndet .. Derfra kan du vælge indstillingen til opdatering af filtidens status for filen ..

Forresten, for at undgå brug af maske tilføjer jeg også en ny maskeattribut:% F. Hvis du bruger denne enkle maske, omdøbes filen … med sit eget navn … Så du er ikke forpligtet til at omdøbe den fil, som du vil opdatere filens attributter for …

Svar

Det andet gratis program er Google Picasa – du kan nemt batch ændre dato og klokkeslæt for alle fotos:

indtast billedbeskrivelse her

indtast billedbeskrivelse her

Dejlig artikel om det: Sådan ændres et fotos dato i Picasa til hvornår billedet blev taget

Kommentarer

  • Hvordan er denne løsning arbejder ? OPen ønsker at ændre datoen fil for at svare til EXIF datoen. Det er sandsynligvis ikke, hvad Picasa gør.

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *