티스토리 뷰
스캔한 옛날 사진이나, 카메라 시계가 잘못 맞춰진 상태로 찍은 사진들의 메타데이터를 한 번에 고쳐야 할 때가 있다. ExifTool을 쓰면 명령 한 줄로 끝난다.
설치
brew install exiftool
명령어
위치만 변경
exiftool -gpslatitude=37.6534 -gpslongitude=126.8321 \
-gpslatituderef=N -gpslongituderef=E \
-overwrite_original /경로/사진_폴더/*.jpg
날짜만 변경
exiftool "-AllDates=2024:08:24 12:34:56" \
-overwrite_original /경로/사진_폴더/*.jpg
둘 다 변경
exiftool "-AllDates=2024:08:24 12:34:56" \
-gpslatitude=37.5665 -gpslongitude=126.9780 \
-gpslatituderef=N -gpslongituderef=E \
-overwrite_original /경로/사진_폴더/*.jpg
옵션 설명
-AllDates—DateTimeOriginal,CreateDate,ModifyDate세 개를 한 번에 설정한다. 개별로 지정할 수도 있지만 대개 셋 다 맞추는 게 맞다-gpslatituderef=N— 북위. 남반구는S-gpslongituderef=E— 동경. 서반구는W-overwrite_original— 원본을 덮어쓴다. 이 옵션이 없으면파일명.jpg_original백업 파일이 같이 생긴다
참고로 -overwrite_original 없이 실행해서 백업본을 남기는 게 처음에는 안전하다. 결과를 확인하고 나서 백업 파일을 지우면 된다.
자주 쓰는 응용
날짜를 상대적으로 이동
카메라 시계가 3시간 느리게 맞춰져 있었다면, 절대값 대신 이동시키는 게 편하다.
# 모든 날짜를 3시간 뒤로
exiftool "-AllDates+=0:0:0 3:0:0" -overwrite_original *.jpg
# 2일 앞으로
exiftool "-AllDates-=0:0:2 0:0:0" -overwrite_original *.jpg
형식은 연:월:일 시:분:초 다.
파일명에서 날짜 가져오기
20240824_123456.jpg 같은 파일명이면 거기서 날짜를 추출할 수 있다.
exiftool "-AllDates<filename" -overwrite_original *.jpg
파일 수정 시각을 EXIF로
exiftool "-AllDates<FileModifyDate" -overwrite_original *.jpg
반대로 EXIF 날짜로 파일명 바꾸기
exiftool "-FileName<DateTimeOriginal" -d "%Y%m%d_%H%M%S%%-c.%%e" .
하위 폴더까지 재귀 처리
exiftool -r "-AllDates=2024:08:24 12:34:56" -overwrite_original /경로/사진_폴더
확인하는 법
# 특정 파일의 모든 메타데이터
exiftool photo.jpg
# 날짜 관련만
exiftool -time:all -a -G1 photo.jpg
# GPS만
exiftool -gps:all photo.jpg
# 폴더 전체를 표로
exiftool -T -filename -DateTimeOriginal -GPSPosition *.jpg
개인정보 관점: EXIF 제거하기
반대 방향도 알아둘 필요가 있다. 사진을 웹에 올릴 때 EXIF에 촬영 위치가 그대로 남아 있으면 집 주소가 노출된다.
# GPS 정보만 제거
exiftool -gps:all= -overwrite_original *.jpg
# 모든 메타데이터 제거
exiftool -all= -overwrite_original *.jpg
# 방향(회전) 정보는 남기고 나머지 제거
exiftool -all= -tagsfromfile @ -orientation -overwrite_original *.jpg
마지막 명령이 실용적이다. Orientation을 지우면 세로 사진이 눕기 때문에, 그것만 남기고 나머지를 털어내는 방식이다.
주의할 점
- 애플 사진 앱 라이브러리를 직접 건드리지 않는다.
~/Pictures/Photos Library.photoslibrary내부 파일을 수정하면 DB와 어긋나서 라이브러리가 깨질 수 있다. 내보내기 → 수정 → 다시 가져오기 순서로 한다 - 먼저 복사본으로 테스트한다.
-overwrite_original은 되돌릴 수 없다 - HEIC도 지원한다. 아이폰 기본 포맷도 문제없이 처리된다
- 동영상도 가능하다. MP4, MOV의
CreateDate도 수정할 수 있다
정리
brew install exiftool한 줄로 설치-AllDates로 촬영·생성·수정 날짜를 한 번에-overwrite_original없으면_original백업이 생긴다. 처음엔 붙이지 말 것- 시계가 틀어졌으면
+=,-=로 상대 이동이 편하다 - 웹에 올릴 사진은
-gps:all=로 위치 정보 제거 - 애플 사진 앱 라이브러리 내부는 직접 수정하지 않는다
'개발 > Etc' 카테고리의 다른 글
| Watchtower로 도커 컨테이너 자동 업데이트하기, 그리고 운영에서 조심할 점 (0) | 2024.11.05 |
|---|---|
| JetBrains IDE 한글 언어팩이 안 먹을 때, 설정 위치가 바뀌었다 (0) | 2024.09.26 |
| 헷갈리는 HTML 태그 정리, em과 i는 무엇이 다른가 (0) | 2024.03.30 |
| JetBrains Translation 플러그인에 DeepL 한국어 API 기여한 이야기 (0) | 2023.11.01 |
| 대량 파일 인코딩 변환하기, euc-kr에서 utf-8로 (shell script) (0) | 2023.09.11 |
댓글
