EXIF(EXchangable Image File format) Update 수행기

in #kr6 years ago (edited)

여러분 EXIF 라고 아시나요?

EXchangable Image File format

교환가능한 이미지 파일 형식(?)

이게 뭐지......

하지만 여기에는 매우 많고 중요한 정보들이 있습니다.

촬영한 날짜, 촬영한 기기, 마지막으로 업데이트한 날짜, ISO, 셔터스피드 등등등

사실 DSLR 을 사용하지 않는다면 그렇게 크게 중요하지는 않아요.

하지만!!!!!!!!!!!!!!!!!!!!

저의 가장 메인 카메라인 B612

하지만 이 앱의 가장 큰 단점은 EXIF를 지원하지 않는다는 겁니다.

EXIF의 가장 큰 중요한 점은 바로 Captured_Date입니다

일반적으로는 date_time_original 이라고 불립니다.

둘 다 같은 의미이겠지만 이 사진이 찍혔던 날짜입니다.

백업을 위해서 폰에서 필요한 사진들을 옮겼더니

갑자기 사진이 날짜가 바뀌어버렸습니다.

알고보니 B612 에서는 Last_update_date 는 지원하지만

EXIF의 date_time_original이 지원을 하지 않았습니다,

그래도 다행이게도 이 앱의 파일 명은 다음과 같습니다.

B612_${YYMMDD}_#{HHMMSS}.jpg


2018-12-07 19:27:30 분에 촬영 됐다면

B612_20181207_192730.jpg 로 저장이 되었겠죠

그렇다면 저것을 이용해서 EXIF를 조정할수 있겠죠

그래서!!!

한번 제작 해봤습니다.

https://gist.github.com/ggomagundan/4a0213fa275dda5435435c3d846449b1

# https://gist.github.com/ggomagundan/4a0213fa275dda5435435c3d846449b1

#!/usr/bin/ruby
# encoding: utf-8
#
# Script for changing photo creation timestamp (in EXIF metadata and filesystem)
# If you're using rvm, please run script as `ruby photo-touch.rb`
# Tested in ruby-2.5.1
#
# Install ExifTool: http://www.sno.phy.queensu.ca/~phil/exiftool/install.html
#
# You need next gems for script to work (use gem install gem_name)
#  * mini_exiftool  (note: you need the ExifTool library!)
#
# 2018, Kai Park. Use it freely under the MIT license.
#

require 'rubygems'
require 'find'               # For Find.find (walk a directory)
require 'fileutils'          # For FileUtils.touch (change file timestamps)
require 'mini_exiftool'      # Exif metadata editing
require 'date'               # For DateTime

# Find all jpegs in currrent directory, change timestamps to required
Find.find('./') do |f| 
   if f.match(/\.jpg|jpeg|jfif\Z/i)
    photo = MiniExiftool.new(f)
    filename = File.basename(f)
    s_file = filename.split(".")[0].split("_")
    # B612 NameFormat is follow : 
    # B612_${YYMMDD}_#{HHMMDD}.jpg
    date = DateTime.parse("#{s_file[1]}T#{s_file[2]}+0900")
    puts "#{f}\t- #{filename}\t#{date}"                    # For debug purposes
    photo.date_time_original = date           # Change EXIF photo creation timestamp
    photo.save
    # if you wanna update UpdateTime
    #FileUtils.touch f, :mtime => DateTime.current         # Change filesystem creation timestamp
   end 
end

제일 좋아하는 Ruby 로 짜보았습니다.

약 1,000개의 파일로 테스트까지 끝내버린 코드!!!

수정 웰컴, 사용도 그냥 웰컴입니다!!! ^^


Donation

기부는 사랑입니다.

  • Ƀ BTC : 16MdVNJgvGYbVuaC6KrjGNy2RCrNsaPaZz

개발자에게 Starize 도 사랑입니다.