Làm cách nào để thay đổi hàng loạt thông tin ngày lấy trong dữ liệu EXIF?


30

Tôi sử dụng F-Spot để quản lý hình ảnh của mình. Đối với một bộ hình ảnh, ngày nào đó đã bị xáo trộn và tất cả chúng đều được đánh dấu là ngày 1 tháng 9 năm 2007. Tôi muốn thay đổi ngày lấy thông tin thành một ngày khác. Tôi có thể làm cái này như thế nào?

Câu trả lời:


25

jhead có khả năng làm điều này.

Giả sử bạn biết một hình ảnh nào đó đã được chụp 2017-04-19 16:20nhưng ngày hiện tại đang hiển thị 2007-09-01 00:15, bạn có thể điều chỉnh tất cả các jpghình ảnh trong một thư mục theo đúng thời gian bằng cách thực hiện:

jhead -da2017:04:19/16:20-2007:09:01/00:15 *.jpg

Đây là một trích từ hướng dẫn:

DATE / TIME MANIPULATION:
   -ft        Set file modification time to Exif time
   -dsft      Set Exif time to file modification time
   -n[format-string]
             Rename files according to date.  Uses exif date if present, file
             date otherwise.  If the optional format-string is not supplied,
             the format is mmdd-hhmmss.  If a format-string is given, it is
             is passed to the 'strftime' function for formatting
             In addition to strftime format codes:
             '%f' as part of the string will include the original file name
             '%i' will include a sequence number, starting from 1. You can
             You can specify '%03i' for example to get leading zeros.
             This feature is useful for ordering files from multiple digicams to
             sequence of taking.  Only renames files whose names are mostly
             numerical (as assigned by digicam)
             The '.jpg' is automatically added to the end of the name.  If the
             destination name already exists, a letter or digit is added to
             the end of the name to make it unique.
  -nf[format-string]
             Same as -n, but rename regardless of original name
  -a         (Windows only) Rename files with same name but different extension
             Use together with -n to rename .AVI files from exif in .THM files
             for example
  -ta<+|->h[:mm[:ss]]
             Adjust time by h:mm backwards or forwards.  Useful when having
             taken pictures with the wrong time set on the camera, such as when
             traveling across time zones or DST changes. Dates can be adjusted
             by offsetting by 24 hours or more.  For large date adjustments,
             use the -da option
  -da<date>-<date>
             Adjust date by large amounts.  This is used to fix photos from
             cameras where the date got set back to the default camera date
             by accident or battery removal.
             To deal with different months and years having different numbers of
             days, a simple date-month-year offset would result in unexpected
             results.  Instead, the difference is specified as desired date
             minus original date.  Date is specified as yyyy:mm:dd or as date
             and time in the format yyyy:mm:dd/hh:mm:ss
  -ts<time>  Set the Exif internal time to <time>.  <time> is in the format
             yyyy:mm:dd-hh:mm:ss
  -ds<date>  Set the Exif internal date.  <date> is in the format YYYY:MM:DD
             or YYYY:MM or YYYY

Một tùy chọn thậm chí còn mạnh mẽ hơn là ExifTool .


Gần đây, jhead đã sử dụng để sửa và đồng bộ tem ngày / giờ trên hàng trăm hình ảnh từ một kỳ nghỉ gia đình trong đó ba máy ảnh đều có dữ liệu và thời gian được đặt không chính xác. Dễ sử dụng và khá hữu ích.
Will M

Jhead dường như không hỗ trợ các loại tệp RAW, nhưng ExifTool thì có (ví dụ: Canon CR2, Nikon NEF, Sony ARW). Điều này là tốt để biết, đối với những người trong chúng ta, những người chỉ chụp ở định dạng RAW hoặc cả RAW và JPEG.
Samir

Nó có tương thích với Windows 10 không?
XPMai

@XPMai Vẫn hoạt động với Windows 10 - Tôi đã kết thúc việc sử dụng -ds cho mục đích của mình.
alexander7567


3

exiv2 là một công cụ dòng lệnh để thao tác dữ liệu exif. Các định dạng hình ảnh được hỗ trợ là JPEG, Canon CRW và Canon THM. PNG là chỉ đọc.

Nếu bạn muốn đặt ngày của tệp thành ngày exif, bạn có thể sử dụng exiv2 với tùy chọn sau.

-t Đặt dấu thời gian của tệp theo dấu thời gian tạo Exif ngoài việc đổi tên tệp (ghi đè -k). Tùy chọn này chỉ được sử dụng với hành động 'đổi tên'.


cảm ơn! exiv2 rất dễ sử dụng và nhanh chóng. -Tcho phép đặt dấu thời gian của tệp mà không cần đổi tên tệp :)
or Dixow


2

Đây là những gì tôi cần

Để thêm bù không đổi vào ngày cũ

exiv2 ad -a -3:17 *.JPG

Đổi tên thành %Y%m%d_%H%M%S

exiv2 mv *.JPG

Các định dạng và tùy chọn khác được chỉ định trong trang man .


1

Bạn có thể thử công cụ miễn phí này: Exifer .


1
@RandolphWest Vui lòng chỉ để lại nhận xét liên kết này nếu chúng thực sự có ý nghĩa. Trong khi câu trả lời này không hoàn hảo , mọi thứ khác có thể dễ dàng được xác định bằng cách nhấp vào liên kết. Mọi thứ khác có thể được bao gồm ở đây sẽ không giúp ích nếu trang được liên kết thay đổi theo bất kỳ cách quan trọng nào, bởi vì sau đó phần mềm sẽ không có sẵn để tải xuống nữa. Trong thực tế, bao gồm quá nhiều chi tiết (như danh sách tính năng hoàn chỉnh) chỉ có nghĩa là câu trả lời nhanh chóng bị lỗi thời nếu phần mềm được liên kết thay đổi.
Daniel Beck

@DanielBeck Thực tế là liên kết trong câu trả lời không còn dẫn đến đâu nên là ví dụ hoàn hảo cho lý do tại sao câu trả lời chỉ liên kết là tào lao.
Raphael

@Raphael Vui lòng đọc lại bình luận của tôi bắt đầu bằng câu thứ ba. Không có gì có thể được nội tuyến ở đây sẽ có thể sửa câu trả lời này.
Daniel Beck

1

Tôi sử dụng một kịch bản sau đây để cung cấp cho hình ảnh một số ngày liên tiếp. Hy vọng nó giúp. Nó hy vọng một thư mục với các hình ảnh sẽ được làm lại như là một đối số i .escript directory_with_images

#!/bin/bash
HOUR=12
MINUTE=0
DATE=2004:06:20
for file in "$1"/*;
do 
    exiv2 -v -M"set  Exif.Image.DateTime $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeDigitized $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    exiv2 -v -M"set  Exif.Photo.DateTimeOriginal $DATE $(printf %02d $HOUR):$(printf %02d $MINUTE):00" "$file"
    #sets file timestamp (i.e. filesystem metadata, not image metadata) as well
    exiv2 -v -T "$file"
    if [ $MINUTE = 59 ]; then
        HOUR=$((HOUR + 1))
        MINUTE=0
    else
        MINUTE=$((MINUTE + 1))
    fi
    # this would rename the file as well
    #new_path=`pwd`/new_filename$(printf %02d $HOUR)$(printf %02d $MINUTE).jpg
    #cp "$file" "$new_path"
done

0

Cả iPhoto và Aperture đều có tùy chọn dịch chuyển thời gian, vì khi bạn thường ở múi giờ mới hoặc đồng hồ bị sai. Nó có thể để các tệp chưa được chỉnh sửa (chỉ cập nhật db của Ứng dụng) hoặc chỉnh sửa các tệp. Rõ ràng F-Spot cần phải mượn cái này.


0

Exiftool: chậm trên dòng lệnh. (Nó được viết bằng Perl, vì vậy hãy rút ra kết luận của riêng bạn ở đó.)

Exifer tạo một thẻ trống hoặc hai trong các tệp và không chỉ trong khối EXIF. Nó cũng sẽ loại bỏ một số thẻ được viết bởi các công cụ khác. Vì tôi đã không sử dụng nó trong hơn một năm, tôi không thể nói cụ thể về cái nào.

Công cụ của FastStone, imx, quá chậm để tiếp tục cài đặt trong hơn một hoặc hai ngày.

Phiếu bầu của tôi là dành cho Hr. Đề xuất của Weinzerl: Exiv2.

BZT


0

Picasa 3 , một công cụ quản lý ảnh miễn phí từ Google, sẽ thực hiện điều này và nó rất hay và nhanh chóng.

Trong Picasa, chọn menu Xem> Thuộc tính để hiển thị ngăn Thuộc tính.

Chọn thư mục chứa ảnh và chúng sẽ xuất hiện dưới dạng tập hợp các hình thu nhỏ.

Chọn hình thu nhỏ bạn muốn cập nhật. Để quyết định cập nhật theo đợt, bạn có thể đặt tất cả chúng vào cùng một ngày mới hoặc bạn có thể thay đổi lần đầu tiên và tất cả các phần còn lại sẽ được thay đổi theo thời gian với cùng một lượng.

Trong ngăn Thuộc tính, nhấp chuột phải vào trường Ngày Máy ảnh, sau đó chọn Điều chỉnh Ngày và Giờ ... từ menu ngữ cảnh. Hộp thoại Điều chỉnh Ngày Ảnh sẽ mở hiển thị Ngày Camera hiện tại cho ảnh đầu tiên.

Chỉnh sửa ngày và giờ camera theo yêu cầu. Nếu bạn chỉ muốn đổi từ sáng sang chiều hoặc ngược lại, chỉ cần chọn phần "sáng" của thời gian và nhập "a" hoặc "p" cho phù hợp. Không cần phải nhập toàn bộ điều "sáng" hoặc "chiều".

Có hai tùy chọn, nếu bạn đã chọn nhiều hơn một hình thu nhỏ để cập nhật: "Điều chỉnh tất cả các ngày ảnh theo cùng một lượng" hoặc "Đặt tất cả các ảnh thành cùng một ngày và giờ". Chọn cái nào phù hợp. Sau đó bấm OK.

Ngày EXIF ​​của tất cả các ảnh đã chọn sẽ được cập nhật.


Xem câu trả lời trước của @ user28515 cũng đề xuất Picasa; đáng buồn là nó không còn nữa
JohnC

Mặc dù Picasa không còn được Google phát triển và họ đã xóa trình cài đặt khỏi trang web của họ nhưng vẫn có thể tải xuống phiên bản mới nhất, v3.9. Googling "tải xuống picasa 3.9" sẽ cho rất nhiều lượt truy cập. Nếu bạn không thích tải xuống từ một trang web ngẫu nhiên, bản tải xuống chính thức của Google vẫn có sẵn thông qua Máy lưu trữ Internet Wayback. Để biết thêm thông tin, hãy xem tại đây: sites.google.com.vn/site/picasaresource/Home/Picasa-FAQ/picasa/ợi
SimonTewsi

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.