Apakah ada program gratis untuk (batch) mengubah tanggal file foto agar sesuai dengan EXIF?

40

Saya ingin menentukan direktori dan meminta perangkat lunak menemukan semua foto dalam direktori dan sub-direktori-nya, dan jika mereka berisi tanggal / waktu EXIF, itu akan menentukan stempel waktu sistem file untuk mencocokkan EXIF.

Mawg
sumber
Tentu saja, saat ini, saya akan menanyakan pertanyaan ini pada rekomendasi perangkat lunak - namun ia mendapat beberapa jawaban yang bagus di sini
Mawg

Jawaban:

47

Ini kebalikan dari Apakah ada perangkat lunak yang akan menetapkan Tanggal EXIF ​​berdasarkan tanggal modifikasi file? , dan saya yakin semua program yang terdaftar di sana akan berlaku.

jhead

Dari semua ini, untuk tugas yang sangat sederhana ini, jhead adalah saran saya. Misalnya, perintahnya

jhead -ft *.jpg

menetapkan banyak file sehingga cap waktu file cocok dengan EXIF.

jhead dengan find, untuk melalui subdirektori

Untuk melakukan rekursi ke dalam subdirektori, Anda bisa menggabungkannya dengan findperintah yang tersedia di Linux / Unix / Mac (atau Cygwin untuk Windows):

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

Atau untuk menemukan salah satu dari *.JPG *.JPEG *.jpg *.jpeg ...Anda juga dapat mencoba

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

Anda juga dapat menggunakan find untuk hanya menampilkan semua file yang akan ... ditemukan, tanpa menjalankan perintah lain (seperti jhead):

find -iname '*.jp*g'

Alat Lainnya

Utilitas lain seperti ExifTool atau Exiv2 jauh lebih mampu, tetapi dengan harga yang rumit. Saya tidak pernah bisa mengingat begitu saja pilihan yang tepat untuk melakukan apa pun dengan itu dan harus melihat dokumentasi setiap waktu, tetapi jhead -ftmudah diingat dengan mnemonic "fix time".

ExifTool

Hanya untuk kelengkapan, meskipun, saya melakukan lihat dokumentasi, dan dengan ExifTool , lakukan ini:

exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname

(Hapus -rjika Anda tidak ingin rekursi, dan jika Anda melakukannya, Anda juga dapat memberikan daftar file atau wildcard sebagai ganti directoryname.) Dan berhati-hatilah dengan tanda kutip itu - jika Anda menjalankan ini pada Windows, Anda ingin "bukannya '.

Exiv2

Dengan Exiv2 :

exiv2 -T rename *.jpg

Hati-hati dengan huruf kecil -t(atau tanpa huruf apa pun -T) Exiv2 juga akan mengganti nama file menjadi nama baru berdasarkan stempel waktu, yang mungkin sangat membingungkan. Exiv2 juga tidak melakukan rekursi.

mattdm
sumber
2
Anda benar, ini adalah kebalikannya tetapi jauh lebih bermanfaat :)
Itai
jhead sangat berguna untuk ini - DAN untuk banyak manipulasi file jpg lainnya. Hati-hati saat menggunakannya - ini adalah alat yang sangat kuat yang dapat mendatangkan malapetaka jika disalahgunakan. Saya sarankan menggunakannya dalam file batch sehingga Anda selalu melakukan apa yang Anda inginkan, dan menguji hasilnya pada set file uji terlebih dahulu.
Russell McMahon
+1 tetapi saya memberi diri saya jawabannya ;-) Hanya agar orang lain di masa depan dapat menemukan cara untuk melakukan persis apa yang saya minta ...
Mawg
@ Colibre Ya, itu akan bekerja di Linux / Unix atau Mac.
mattdm
Saya perhatikan beberapa browser gambar hanya menampilkan (diaporama) gambar dengan urutan nama file (bukan pada waktu modifikasi file). Akhirnya saya menggunakan cap waktu EXIF ​​untuk mengatur waktu file DAN untuk awalan nama file. Saya menggunakan perintah find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +. Penjelasan: -name '[0-9][0-9]*'untuk mencegah penggantian nama lagi file yang sudah memiliki awalan tanggal ( '[0-9][0-9]untuk memperhitungkan tahun dan bulan). -iname '*.jp*g'dapat dilewati karena jheadhanya memproses file yang didukung (hanya file JPEG). %funtuk menyimpan nama file asli.
olibre
12

Irfanview dan jhead akan melakukan apa yang Anda inginkan.
Keduanya gratis.
Tautan keduanya di bawah.
jhead adalah command line driven atau dapat dipanggil oleh proses lain.
Versi Irfanview dapat dipanggil dari baris perintah atau secara internal dalam batch atau berdasarkan file dengan file.

Contoh di bawah untuk Irfanview menunjukkan cara menyalin di kedua arah:


Irfanview

Mengizinkan GUI atau perubahan baris perintah batch atau per transfer tanggal / waktu file dari EXIF ​​ke file spesifikasi atau sebaliknya (tanpa perubahan file lain jika diinginkan).

Sumber: Gratis dari www.irfanview.com

Ini JAUH lebih mudah dan lebih cepat dalam praktek setelah hanya beberapa penggunaan daripada instruksi di bawah ini membuatnya muncul. mis.
Untuk mengonversi tanggal / waktu file tunggal ke nilai EXIF ​​memerlukan
Shift-J, Alt-F, Enter.
Melihat mengapa beberapa kali pertama memakan waktu lebih lama.

Untuk melakukan ini untuk batch file SOUNDS complex untuk dipelajari -
Dibutuhkan: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(Atau: T, Ctrl-A, Shift-J, Enter) (memberikan opsi lebih sedikit)
TETAPI sebenarnya hampir sepenuhnya intuitif setelah sedikit digunakan - menu memandu Anda pada awalnya sampai jalur otak terbentuk.

GUI, per file

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

masukkan deskripsi gambar di sini

GUI, satu atau banyak file (melalui tampilan Gambar Kecil)

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"

masukkan deskripsi gambar di sini

Dari baris perintah - ini adalah "putar" tanpa tindakan kecuali untuk menyalin tanggal / waktu dari EXIF ​​ke file tanggal dan waktu. Yang sebaliknya juga bisa dicapai jika diinginkan. :

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

  • Untuk menyalin tanggal / waktu dalam arah yang berlawanan ((filespec ke EXIF)
    gunakan seperti di atas dengan (0,0,1,0,0,0,0,0,0)


jhead

akan melakukan apa saja yang dapat Anda bayangkan dengan file jpeg

Sumber: Gratis dari http://www.sentex.net/~mwandel/jhead/

Saya menggunakan file batch seperti di bawah ini. Opsi lain dimungkinkan:

  • jhead -ft % 1 .jpg

Mereka mengatakan: Hal-hal yang dapat diubah oleh jhead dalam file jpeg exif

  • Gambar-sampai menurut tag rotasi menggunakan jpegtran
    Set atau relatif menyesuaikan exif internal yang timestamps
    tanggal Fix / waktu offset dalam batch besar gambar
    Re-nama atau tanggal stempel file menurut exif timestamp
    transfer exif header antara gambar
    Ganti thumbnail dalam Exif header
    Sunting jpeg komentar (tetapi bukan komentar Exif)
    Hapus bagian exif atau komentar dari gambar jpeg
    Buat header exif minimal baru yang berisi tanggal dan gambar mini

_________________________

Catatan: Agustus 2016: "Pengguna anonim" dengan benar menyarankan bahwa satu konversi yang disarankan tidak berfungsi seperti yang saya katakan. Saya sudah banyak menambah area yang bersangkutan.

Russell McMahon
sumber
Agustus 2016: "Pengguna anonim" dengan benar menyarankan agar satu konversi yang disarankan tidak berfungsi seperti yang saya katakan. Saya sudah banyak menambah area yang bersangkutan.
Russell McMahon
Bagaimana dengan file mentah?
Michael C
@MichaelClark Saya senang Anda menanyakan pertanyaan itu :-). Saya perhatikan bahwa kita semua tampaknya telah menangani file JPG dan bukan RAW. Saya membayangkan bahwa Anda akan menjadi salah satu dari lebih banyak orang yang bertanya tentang bagaimana melakukan ini dengan file RAW :-).
Russell McMahon
4

Hanya alat EXIF ​​baris perintah lain yang dapat mengubah tanggal modifikasi file agar sesuai dengan waktu pengambilan gambar, berdasarkan pada metada EXIF ​​dalam file gambar JPEG:

 exiv2 -T rename somedir/foo*.jpg

Jangan khawatir, argumen perintahnya renameok di sana dan tidak ada salahnya.
Hanya saja tindakan ganti nama file disalahgunakan untuk hanya membuat efek samping dari mengubah cap waktu.

Volker Siegel
sumber
2

Meskipun saya benar - benar tidak merekomendasikan mengandalkan tanggal / waktu file ketika datang ke gambar Anda, Anda dapat menggunakan alat gratis yang disebut EXIF Date Changer untuk mengatur tanggal file semua gambar JPG Anda. Pengaturan standar akan menetapkan tanggal yang dibuat dan tanggal yang diubah tanggal file ke foto yang diambil.

Alasan mengapa saya tidak merekomendasikan ini adalah tanggal file mudah diperbarui. Jika Anda mengedit gambar tanggal yang diubah akan diperbarui. Jika Anda menyalin gambar itu mendapat tanggal baru.

Solusi yang jauh lebih baik adalah mengubah nama file untuk memasukkan tanggal / waktu dalam nama file itu sendiri. Ini masih memungkinkan penyortiran yang mudah dan berfungsi dengan baik dengan gambar yang disimpan di iPhone / dropbox.

EXIF Date Changer - Tetapkan tanggal file ke tanggal yang diambil

Greg
sumber
2

Lihat perangkat lunak gratis saya yang baru "Photo Date Organizer": http://photodateorganizer.sourceforge.net/

masukkan deskripsi gambar di sini

killdaclick
sumber
1
Dari halaman SourceForge: "Dibawa ke Anda oleh: killdaclick". Mengiklankan produk Anda sendiri tidak dilarang di sini, tetapi Anda harus memperjelas apa afiliasi Anda.
Philip Kendall
@PhilipKendall selesai :)
killdaclick
2

FastStone Image Viewer dapat melakukan ini (versi 4.9 digunakan) - cukup pilih file dalam panel thumbnail, klik kanan, pilih "Alat"> "Ubah Stempel Waktu" - maka Anda dapat menggunakan data EXIF ​​(dengan atau tanpa modifikasi) atau menggunakan keseluruhan tanggal / waktu manual tetap yang disesuaikan.

Kozuch
sumber
Wow! Saya tahu, tidak tahu itu. Saya telah menggunakan alat screen capture mereka selama bertahun-tahun dan belum menemukan yang lebih baik. Anda dapat memperoleh versi gratis terakhir di sini ; Saya tidak memerlukan semua fitur berbayar. Saya juga pernah menggunakan pemirsa mereka di masa lalu, tetapi tidak tahu itu bisa melakukannya.
Mawg
1

Advance Renamer adalah perangkat lunak ramah pengguna terbaik yang sangat sederhana.

  1. Seret dan lepas semua foto ke AR (Advamer Renamer)

  2. Klik pada (Kiri atas) Tambahkan Metode -> Nama Baru

  3. Klik pada salah satu gambar tengah bawah Anda akan melihat tombol ExifTool yang menunjukkan semua metadata klik pada atribut dan Anda akan mendapatkan tag. Dalam hal ini adalah<ExifTool:DateTimeOriginal>

  4. Salin ini dan rekatkan di kotak teks Nama Baru Anda dapat menambahkan apa pun sebelum atau setelah sukaIMG_<ExifTool:DateTimeOriginal> , DSC_<ExifTool:DateTimeOriginal>dll.

  5. Klik Mulai kumpulan (Kanan Atas) Ini akan mengubah nama semua file Anda dengan tanggal Misalnya 2017_12_01 19_10_12 Itu selalu baik untuk memiliki tanggal asli dalam nama file menyebabkan atribut mungkin hilang tetapi nama file tidak.

  6. Sekali lagi seret semua file yang diganti nama ke AR
  7. Klik Metode baru -> Cap waktu
  8. Centang Semua 3 kotak centang Buat, Ubah, Diakses (Diakses kadang-kadang mungkin tidak berfungsi, hapus centang saja jika itu terjadi)
  9. Pilih FileName Pattern dan rekatkan<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
  10. Mulai Batch.
  11. Kamu baik. Misi selesai
Shalem Raj
sumber
0

Saya menyarankannya ke penulis PhotoRenamer, yang menjawab ...

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

Saya menambahkan tombol di tab 'Opsi' pada Pita .. Dari sana, Anda dapat memilih opsi untuk memperbarui status waktu file dari file tersebut ..

Ngomong-ngomong, untuk menghindari penggunaan topeng, saya juga menambahkan atribut topeng baru:% F. Jika Anda menggunakan topeng sederhana ini, file tersebut diganti namanya ... dengan nama itu sendiri ... Jadi Anda tidak wajib mengganti nama file yang ingin Anda perbarui atribut waktu file ...

Mawg
sumber
0

Ini adalah pertanyaan lama dan sepertinya ada beberapa saran yang harus bekerja dengan baik, tetapi yang saya datangi untuk mengurutkan masalah pemesanan file setelah upgrade ponsel Android adalah ini.

  • Engkol buka Windows (untuk pertama kalinya dalam usia)
  • Instal ExtFS atau sesuatu yang dapat membaca partisi ext4
  • Salin foto ke hard disk dari Micro SD
  • Gunakan Changer Atribut ( https://www.petges.lu/home/ ) untuk menetapkan tanggal yang dibuat / diubah ke tanggal EXIF
  • Pukul kartu kembali ke telepon
  • Salin foto kembali ke ponsel melalui MTP

Mungkin ini akan bermanfaat bagi seseorang.

triff
sumber
-2

Program gratis lainnya adalah Google Picasa - Anda dapat dengan mudah mengubah tanggal dan waktu untuk semua foto:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

Artikel yang bagus tentang hal itu: Cara Mengubah Tanggal Foto di Picasa menjadi Saat Foto Diambil

Vladislav
sumber
2
Bagaimana cara kerja solusi ini? OP ingin mengubah tanggal file agar sesuai dengan tanggal EXIF . Mungkin bukan itu yang dilakukan Picasa.
Olivier