ฉันต้องการระบุไดเรกทอรีและให้ซอฟต์แวร์ค้นหารูปถ่ายทั้งหมดในไดเรกทอรีและไดเรกทอรีย่อยและหากมีวันที่ / เวลา EXIF ก็จะกำหนดเวลาประทับของระบบแฟ้มให้ตรงกับ EXIF
ฉันต้องการระบุไดเรกทอรีและให้ซอฟต์แวร์ค้นหารูปถ่ายทั้งหมดในไดเรกทอรีและไดเรกทอรีย่อยและหากมีวันที่ / เวลา EXIF ก็จะกำหนดเวลาประทับของระบบแฟ้มให้ตรงกับ EXIF
คำตอบ:
นี่คือสิ่งที่ตรงกันข้ามกับมีซอฟต์แวร์ใดที่จะกำหนดวันที่ EXIF ตามวันที่แก้ไขไฟล์หรือไม่? และฉันมั่นใจว่าโปรแกรมทั้งหมดที่ระบุไว้จะมีผล
ของเหล่านี้สำหรับงานง่าย ๆ นี้jheadคือคำแนะนำของฉัน ตัวอย่างเช่นคำสั่ง
jhead -ft *.jpg
ตั้งค่ากลุ่มของไฟล์เพื่อให้การประทับเวลาของไฟล์ตรงกับ EXIF
find
สำหรับการผ่านไดเรกทอรีย่อยในการดำเนินการเรียกซ้ำไปยังไดเรกทอรีย่อยคุณสามารถรวมกับfind
คำสั่งที่มีอยู่ใน Linux / Unix / Mac (หรือCygwinสำหรับ Windows):
find -name '*.jpg' -exec jhead -ft {} +
หรือเพื่อค้นหาใด ๆ ของ*.JPG *.JPEG *.jpg *.jpeg ...
คุณยังสามารถลอง
find -iname '*.jp*g' -exec jhead -ft {} +
คุณยังสามารถใช้ find เพื่อแสดงไฟล์ทั้งหมดที่จะพบ ... โดยไม่ต้องดำเนินการคำสั่งอื่น ๆ (เช่น jhead):
find -iname '*.jp*g'
สาธารณูปโภคอื่น ๆ เช่น ExifTool หรือ Exiv2 นั้นมีความสามารถมากกว่า แต่ก็มีราคาที่ซับซ้อน ฉันไม่สามารถจำตัวเลือกที่ถูกต้องในทันทีเพื่อทำอะไรกับสิ่งเหล่านั้นและต้องดูเอกสารทุกครั้ง แต่jhead -ft
ง่ายต่อการจดจำด้วยตัวช่วยจำ "เวลาแก้ไข"
เพียงเพื่อความสมบูรณ์ แต่ผมไม่ได้ดูที่เอกสารและมีExifToolทำเช่นนี้:
exiftool -r '-DateTimeOriginal>FileModifyDate' directoryname
(ลบ-r
ถ้าคุณไม่ต้องการเรียกซ้ำและถ้าคุณทำเช่นนั้นคุณสามารถให้รายการของไฟล์หรือสัญลักษณ์แทนdirectoryname
) และระวังคำพูดเหล่านั้น - ถ้าคุณใช้งานบน Windows คุณต้องการแทน"
'
ด้วยExiv2 :
exiv2 -T rename *.jpg
ระวังว่าด้วยตัวพิมพ์เล็ก-t
(หรือไม่มี-T
) Exiv2 จะเปลี่ยนชื่อไฟล์เป็นชื่อใหม่ตามเวลาประทับซึ่งอาจทำให้สับสนมาก Exiv2 ยังไม่ทำการสอบถามซ้ำ
find -name '[0-9][0-9]*' -o -iname '*.jp*g' -type f -exec jhead -ft -n%Y%m%d_%H%M%S_%f {} +
การใช้คำสั่งฉัน คำอธิบาย: -name '[0-9][0-9]*'
เพื่อป้องกันการเปลี่ยนชื่อไฟล์อีกครั้งที่มีคำนำหน้าวัน ( '[0-9][0-9]
เพื่อพิจารณาบัญชีปีและเดือน) -iname '*.jp*g'
สามารถข้ามได้เพราะjhead
ประมวลผลเฉพาะไฟล์ที่รองรับ (เฉพาะไฟล์ JPEG) %f
เพื่อรักษาชื่อไฟล์ดั้งเดิม
Irfanview และ jhead จะทำสิ่งที่คุณต้องการ
ทั้งฟรี
ลิงก์ไปยังทั้งสองด้านล่าง
jhead เป็นตัวขับเคลื่อนบรรทัดคำสั่งหรือสามารถถูกเรียกใช้โดยกระบวนการอื่น
รุ่น Irfanview สามารถเรียกใช้จากบรรทัดคำสั่งหรือภายในเป็นชุดหรือตามไฟล์
ตัวอย่างด้านล่างสำหรับ Irfanview แสดงวิธีคัดลอกในทิศทางใด:
irfanview
อนุญาตให้เปลี่ยน GUI หรือบรรทัดคำสั่งของแบทช์หรือต่อการถ่ายโอนไฟล์วันที่ / เวลาจาก EXIF ไปเป็นข้อมูลจำเพาะของไฟล์หรือในทางกลับกัน (โดยไม่มีการเปลี่ยนแปลงไฟล์อื่น ๆ หากต้องการ)
ที่มา:ฟรีจากwww.irfanview.com
นี้เป็นมากง่ายและรวดเร็วในการปฏิบัติหลังจากเพียงไม่กี่ใช้กว่าคำแนะนำด้านล่างทำให้มันปรากฏ เช่น
หากต้องการแปลงวันที่ / เวลาของไฟล์เดี่ยวเป็นค่า EXIF ต้องใช้
Shift-J, Alt-F, Enter
ดูว่าทำไมไม่กี่ครั้งแรกใช้เวลานาน
เมื่อต้องการทำเช่นนี้สำหรับชุดของไฟล์เสียงซับซ้อนเพื่อเรียนรู้ -
มันต้อง: T, Ctrl-A, Alt-F, J, Enter, (Alt-F), Enter
(หรือ: T, Ctrl-A, Shift-J, Enter) (ให้ตัวเลือกน้อยลง)
แต่อันที่จริงแล้วมันใช้งานง่ายเกือบทั้งหมดหลังจากใช้งานเพียงเล็กน้อย - เมนูแนะนำคุณตั้งแต่แรกจนกระทั่งรูปแบบเส้นทางของสมอง
GUI ต่อไฟล์
Options, JPG lossless rotation (Shift-J)
Select "Apply original EXIF date/time to new file"
Consider also selecting other options
GUI ไฟล์หนึ่งหรือหลายไฟล์ (ผ่านมุมมองรูปขนาดย่อ)
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"
จากบรรทัดคำสั่ง - นี่คือ "การหมุน" ที่ไม่มีการดำเนินการยกเว้นเพื่อคัดลอกวันที่ / เวลาจาก EXIF ไปยังไฟล์วันที่และเวลา ตรงกันข้ามสามารถทำได้ถ้าต้องการ :
i_view32.exe file_spec \ *. jpg / jpg_rotate = (0,0,0,0,1,0,0,0,0,0)
ในการคัดลอกวันที่ / เวลาในทิศทางตรงกันข้าม ((filespec ไปยัง EXIF)
ใช้ข้างต้นด้วย (0,0,1,0,0,0,0,0,0)
jhead
จะทำทุกอย่างที่คุณสามารถจินตนาการได้ด้วยไฟล์ jpeg
ที่มา:ฟรีจากhttp://www.sentex.net/~mwandel/jhead/
ฉันใช้ไฟล์แบตช์ดังต่อไปนี้ ตัวเลือกอื่น ๆ ที่เป็นไปได้:
พวกเขากล่าวว่าสิ่งที่ jhead สามารถแก้ไขได้ในไฟล์ exif jpeg
_________________________
หมายเหตุ: สิงหาคม 2559: "ผู้ใช้ที่ไม่ระบุชื่อ" แนะนำอย่างถูกต้องว่าการแปลงที่แนะนำหนึ่งรายการไม่ทำงานตามที่ฉันพูด ฉันได้เพิ่มไปยังพื้นที่ที่เกี่ยวข้องอย่างกว้างขวาง
เครื่องมือบรรทัดคำสั่งอีกบรรทัดหนึ่งที่สามารถเปลี่ยนวันที่แก้ไขล่าสุดของไฟล์เพื่อให้ตรงกับเวลาในการถ่ายภาพโดยยึดตาม EXIF เมตาดาในไฟล์ภาพ JPEG:
exiv2 -T rename somedir/foo*.jpg
ไม่ต้องกังวลอาร์กิวเมนต์คำสั่งrename
นั้นใช้ได้และไม่เป็นอันตราย
เป็นเพียงการกระทำการเปลี่ยนชื่อไฟล์ในทางที่ผิดเพื่อสร้างผลข้างเคียงของการเปลี่ยนการประทับเวลาเท่านั้น
ในขณะที่ฉันไม่แนะนำให้ใช้วันที่ / เวลาของไฟล์เมื่อมาถึงรูปภาพของคุณคุณสามารถใช้เครื่องมือฟรีที่เรียกว่าEXIF Date Changerเพื่อสร้างชุดวันที่ของไฟล์ภาพ JPG ทั้งหมดของคุณ การตั้งค่าเริ่มต้นจะตั้งทั้งวันที่สร้างและวันที่แก้ไขไฟล์ไปยังภาพถ่ายที่ถ่าย
เหตุผลที่ฉันไม่แนะนำนี่คือวันที่ของไฟล์ได้รับการอัพเดตอย่างง่ายดาย หากคุณแก้ไขภาพวันที่แก้ไขจะได้รับการอัพเดต หากคุณคัดลอกภาพจะได้รับวันที่ใหม่
ทางออกที่ดีกว่าคือการเปลี่ยนชื่อไฟล์เพื่อรวมวันที่ / เวลาในชื่อไฟล์เอง วิธีนี้ยังช่วยให้การเรียงลำดับง่ายและทำงานได้ดีกับรูปภาพที่เก็บไว้ใน iPhone / dropbox
ลองใช้ซอฟต์แวร์ฟรีตัวใหม่ของฉัน "Photo Date Organizer": http://photodateorganizer.sourceforge.net/
FastStone Image Viewerสามารถทำได้ (ใช้รุ่น 4.9) - เพียงแค่เลือกไฟล์ในบานหน้าต่างภาพขนาดย่อคลิกขวาเลือก "เครื่องมือ"> "เปลี่ยนการประทับเวลา" - จากนั้นคุณสามารถใช้ข้อมูล EXIF (มีหรือไม่มีการดัดแปลง) หรือใช้ข้อมูล คู่มือที่กำหนดเองคงที่วันที่ / เวลา
Advance Renamer เป็นซอฟต์แวร์ที่เป็นมิตรกับผู้ใช้ที่ดีที่สุดซึ่งง่ายมาก
ลากและวางรูปถ่ายทั้งหมดไปที่ AR (Advance Renamer)
คลิกที่ (ซ้ายบน) เพิ่มวิธีการ -> ชื่อใหม่
คลิกที่ภาพด้านล่างตรงกลางคุณจะเห็นปุ่มExifToolซึ่งแสดงเมตาดาต้าทั้งหมดเพียงแค่คลิกที่แอททริบิวต์และคุณจะได้รับแท็กในกรณีนี้มันคือ<ExifTool:DateTimeOriginal>
คัดลอกและวางนี้ในชื่อใหม่ช่องคุณสามารถเพิ่มอะไรก่อนหรือหลังเหมือนIMG_<ExifTool:DateTimeOriginal>
, DSC_<ExifTool:DateTimeOriginal>
ฯลฯ
คลิกเริ่มแบตช์ (ด้านบนขวา) การทำเช่นนี้จะเปลี่ยนชื่อไฟล์ทั้งหมดของคุณด้วยวันที่เช่น2017_12_01 19_10_12 มันดีเสมอที่จะมีวันที่ดั้งเดิมในชื่อไฟล์เพราะแอตทริบิวต์อาจหายไป แต่ชื่อไฟล์จะไม่หายไป
<Year>_<Month>_<Day> <Hour>_<Min>_<Sec>
ฉันแนะนำให้ผู้เขียน PhotoRenamer ซึ่งตอบกลับ ...
PhotoRenamer 3.2 http://www.tgmdev.be/applications/photorenamer/photorenamer.php
ฉันเพิ่มปุ่มในแท็บ 'ตัวเลือก' ของ Ribbon .. จากตรงนั้นคุณสามารถเลือกตัวเลือกสำหรับการอัพเดตสถานะเวลาของไฟล์ของไฟล์ ..
โดยวิธีการเพื่อหลีกเลี่ยงการใช้หน้ากากฉันยังเพิ่มคุณสมบัติหน้ากากใหม่:% F หากคุณใช้มาสก์แบบง่ายไฟล์จะถูกเปลี่ยนชื่อ ... ด้วยชื่อของมันเอง ... ดังนั้นคุณไม่จำเป็นต้องเปลี่ยนชื่อไฟล์ที่คุณต้องการอัปเดตแอตทริบิวต์เวลาของไฟล์ ...
นี่เป็นคำถามเก่าและดูเหมือนว่ามีคำแนะนำเล็กน้อยที่ควรใช้งานได้ดี แต่คำถามที่ฉันมาถึงเพื่อเรียงลำดับปัญหาการสั่งซื้อไฟล์หลังจากการอัปเกรดโทรศัพท์ Android เป็นสิ่งนี้
บางทีนี่อาจจะเป็นประโยชน์กับใครบางคน
โปรแกรมฟรีอื่น ๆ คือ Google Picasa คุณสามารถเปลี่ยนวันที่และเวลาสำหรับรูปถ่ายทั้งหมดได้อย่างง่ายดาย:
บทความที่ดีเกี่ยวกับมัน: วิธีเปลี่ยนวันที่ของภาพถ่ายใน Picasa เป็นเมื่อถ่ายภาพแล้ว