จะรับ / แก้ไขข้อมูลเมตา EXIF ​​ของภาพหลายภาพได้อย่างไร


30

ฉันเจอปัญหาใหญ่เมื่อคืนวานนี้

ฉันหยิบกล้องดิจิตัลเก่าออกแล้วเริ่มใช้โดยไม่ต้องตั้งวันที่และเวลาปัจจุบัน

รูปภาพทั้งหมดที่คลิกในวันนี้มีวันที่ 1 มกราคม 2009

ฉันต้องการเปลี่ยนวันที่และเวลา (และเมตาดาต้าภาพ EXIF ​​อื่น ๆ ) ของภาพหลายภาพ

โปรดแนะนำซอฟต์แวร์บางอย่างที่สามารถประมวลผลกับภาพหลายภาพในคลิกเดียว / ไป

คำตอบ:


31

ในขณะที่คุณมีโซลูชัน GUI อยู่แล้วฉันคิดว่าฉันจะพูดถึงว่ามีหลายวิธีในการเปลี่ยนข้อมูล EXIF ​​บนบรรทัดคำสั่ง เครื่องมือที่มีประโยชน์สองแบบคือexiftoolและjheadซึ่งสามารถติดตั้งได้ด้วยคำสั่งนี้:

sudo apt-get install libimage-exiftool-perl jhead

ด้วยเครื่องมือทั้งสองนี้คุณสามารถทำงานกับไฟล์หลายไฟล์พร้อมกัน แต่คุณอาจต้องการสำรองไฟล์ของคุณก่อนที่จะเริ่มจัดการข้อมูล exif

jhead

หากต้องการเปลี่ยนข้อมูล EXIF ​​เวลาและวันที่ในไฟล์จำนวนหนึ่งในคลิกเดียวคุณสามารถเปิดเทอร์มินัลแล้วcdไปที่โฟลเดอร์ที่มีรูปภาพและเรียกใช้:

jhead -ts2012:10:29-10:28:03 *.jpg

-tsสวิตช์ช่วยให้คุณระบุวันที่และเวลาที่จำเป็นและเขียนไปยังส่วนหัว EXIF ทั้งหมดในหนึ่งไป: YYYY:MM:DD-HH:MM:SSรูปแบบที่กำหนดที่นี่คือ

หากคุณต้องการเปลี่ยนวันที่โดยไม่ระบุเวลาคุณจะใช้แทน:

jhead -ds2012:10:29 *.jpg

คุณสามารถทำได้เพียงหนึ่งภาพที่ถ่ายด้วยกล้องเฉพาะหากคุณระบุเช่น-model "D70"แต่ตัวเลือกนั้นต้องมาก่อนในการประมวลผลและต้องเป็น "D70", "S100" และไม่ใช่ "Nikon D70" " ดูการอ่าน exif จากรูปภาพของคุณเพื่อรับหมายเลขรุ่นที่ถูกต้อง

jhead -model "D70" -ts2012:10:29-10:28:03 *.jpg

man jheadสำหรับข้อมูลเพิ่มเติมโปรดดูที่

exiftool

ยูทิลิตี้นี้มีตัวเลือกมากขึ้นกว่าjheadและครอบคลุมมากตามที่ระบุไว้ในเว็บไซต์อย่างเป็นทางการ มีส่วนหน้าแบบกราฟิกสำหรับ exiftoolในการพัฒนา แต่มันอยู่ในช่วงเริ่มต้นในขณะนี้ แต่ดูมีแนวโน้ม

ตัวเลือกการเลื่อนวันที่และเวลาและรูปแบบที่สามารถใช้งานได้นั้นมีรายละเอียดค่อนข้างมากตามรายละเอียดในไฟล์ PDF ที่มีประโยชน์นี้ เช่นเดียวกับjheadคุณสามารถตัดสินใจเปลี่ยนเวลาและวันที่หรือเพียงแค่เปลี่ยนวันที่ ตัวอย่างนี้เปลี่ยนทั้งวันที่และเวลา:

exiftool -AllDates="2012:03:14 12:25:00" *.jpg

ตัวอย่างด้านบนเป็นเพียงการตั้งค่าเฉพาะสำหรับวันที่และเวลาของรูปภาพ หากคุณต้องการที่จะเปลี่ยนพวกเขาทั้งหมดโดยดัชนีเวลาเช่นสามปีข้างหน้าคุณสามารถใช้:

exiftool -AllDates+="3:0:0 0" *.jpg

คุณลักษณะการเปลี่ยนจะมีประโยชน์มากหากรูปภาพของคุณมีการทำเครื่องหมายในทันทีเมื่อปี 2009 แม้ว่าจะถูกถ่ายในปี 2012 ก็ตามโปรดตรวจสอบให้แน่ใจว่าคุณใช้เครื่องหมายบวกหรือลบหน้าเครื่องหมายเท่ากับ ( -AllDates-=หรือ-AllDates+=) สิ่งที่คุณต้องการให้บรรลุเมื่อคุณกำหนดดัชนีเวลาที่ต้องการมิฉะนั้นข้อมูล EXIF ​​ที่ได้จะไม่เป็นไปตามที่คาดไว้

exiftoolจะสร้างข้อมูลสำรองของต้นฉบับก่อนที่จะแก้ไขข้อมูล EXIF ​​ที่เพิ่มต้นฉบับไว้ที่ท้ายชื่อไฟล์

exiftoolรองรับประเภทภาพมากกว่าjheadที่ใช้ได้กับ JPEG เท่านั้น

man exiftoolสำหรับข้อมูลเพิ่มเติมโปรดดูที่


1
+1, คำตอบที่โดดเด่น Mik นี่คือความยืดหยุ่นมากกว่าการใช้ Shotwell
Tom Brossman

ฉันสะดุดกับคำตอบนี้เพราะฉันกำลังดูวิธีการเพิ่มข้อมูล EXIF ​​ไปยังภาพ jpg ที่ไม่มีในตอนแรก jhead -mkexif -ts<date>สำหรับสิ่งที่ผมพบว่าผมจำเป็นต้องมี
เอียน

jhead เป็นเพียงที่ดีในการใช้
Harald

1. โปรดทราบว่าน่าเสียดายที่มาตรฐานของ EXIF ไม่รวมข้อมูลเขตเวลา 2. DSCN{120..345}.jpgแทนที่จะดอกจันคุณสามารถใช้การขยายตัวรั้ง: 3. การเปลี่ยนการประทับเวลาของไฟล์โดยใช้วิธีอื่นเป็นการอ้างอิงtouch -r ~/path/reference.jpg *.jpg
Pablo A

21

การเปลี่ยนวันที่และเวลาเป็นเรื่องง่ายใน Shotwell เลือกรูปภาพที่คุณต้องการปรับและไปที่เมนูดังนี้:

เมนู shotwell

เลือกภาพถ่าย / ปรับวันที่และเวลา ที่แสดงเมนูดังนี้:

ปรับวันเวลา

หากภาพถ่ายทั้งหมดถูกปิดด้วยจำนวนเท่ากันคุณสามารถทำทั้งหมดได้ในครั้งเดียว หากคุณใช้กล้องมากกว่าหนึ่งตัวและถูกปิดด้วยจำนวนที่แตกต่างกันคุณจะต้องแบ่งพวกเขาและทำแต่ละชุดแยกกัน

หน้าความช่วยเหลือของ Shotwell อธิบายนี้อยู่ที่นี่


นี่เป็นวิธีที่ถูกต้องในการทำเช่นนี้กับวันที่และเวลา ขอบคุณมากสำหรับการแบ่งปัน
Geppettvs D'Constanzo

ตัวเลือกเมนูด้านบนของ Shotwell ไม่ปรากฏขึ้นที่นี่ นั่นเป็นข้อผิดพลาดของ Xenial Xerus หรือไม่?
Leonardo Castro

3

คำถามนี้ถามถึง EXIF ​​แต่ข้อมูลเมตาของรูปภาพมีมาตรฐานอย่างน้อยสามมาตรฐานที่สามารถแนบกับรูปภาพ, EXIF, XMP และ IPTC โปรแกรมภาพถ่ายจำนวนมากจะเขียนลงในรูปแบบเหล่านี้ทั้งหมด แต่ไม่ใช่ทั้งหมดดังนั้นจึงเป็นสิ่งสำคัญที่จะต้องตรวจสอบทั้งหมด

ฉันพบว่าexifเป็นเครื่องมือที่ดี แต่exiv2ก็ดีกว่า เปรียบเทียบexif:

↪ exif 00000020.jpg 
EXIF tags in '00000020.jpg' ('Intel' byte order):
--------------------+----------------------------------------------------------
Tag                 |Value
--------------------+----------------------------------------------------------
Software            |Shotwell 0.22.0
Date and Time       |1905:01:01 00:00:01
X-Resolution        |72
Y-Resolution        |72
Resolution Unit     |Inch
Date and Time (Origi|1905:01:01 00:00:01
Date and Time (Digit|1905:01:01 00:00:01
User Comment        |Dad
Exif Version        |Exif Version 2.1
FlashPixVersion     |FlashPix Version 1.0
Color Space         |Internal error (unknown value 65535)
--------------------+----------------------------------------------------------

ถึงexiv2:

↪ exiv2 -p a 00000020.jpg 
Exif.Image.Software                          Ascii      16  Shotwell 0.22.0
Exif.Image.DateTime                          Ascii      20  1905:01:01 00:00:01
Exif.Image.ExifTag                           Long        1  86
Exif.Photo.DateTimeOriginal                  Ascii      20  1905:01:01 00:00:01
Exif.Photo.DateTimeDigitized                 Ascii      20  1905:01:01 00:00:01
Exif.Photo.UserComment                       Undefined  11  Dad
Iptc.Application2.Program                    String      8  Shotwell
Iptc.Application2.ProgramVersion             String      6  0.22.0
Iptc.Application2.Keywords                   String      8  2015scan
Iptc.Application2.Keywords                   String     11  Lissner-Jay
Iptc.Application2.Keywords                   String      6  People
Xmp.exif.DateTimeOriginal                    XmpText    20  1905:01:01 08:00:01
Xmp.exif.DateTimeDigitized                   XmpText    20  1905-01-01T08:00:01Z
Xmp.xmp.CreateDate                           XmpText    20  1905-01-01T08:00:01Z
Xmp.dc.subject                               XmpBag      3  2015scan, Lissner-Jay, People
Xmp.digiKam.TagsList                         XmpSeq      2  People, People/Lissner-Jay
Xmp.MicrosoftPhoto.LastKeywordXMP            XmpBag      2  People, People/Lissner-Jay

ความแตกต่างใหญ่ที่นี่คือคำหลักใน XMP และ IPTC ไม่ได้อยู่ใน EXIF ​​เลยและถ้าฉันดูที่นั่นฉันคิดว่ามันไม่มีคำหลัก

ฉันให้คำสั่งexiv2 -p a my-image.jpgเพราะมันแสดงข้อมูลเมตาทั้งสามรูปแบบ การออกไป-p aเพียงแสดงข้อมูล EXIF ​​ให้คุณทราบ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.