EXIF를 활용해 이미지의 메타데이터를 확인하고, 수정해보려고 한다.
환경은 Ubuntu 20.04 가상머신이다.
1. 간단한 툴 이용하기
먼저, 터미널에 아래 명령어로 exiftool을 설치해준다.
sudo apt-get install exif
sudo apt install libimage-exiftool-perl
이미지 파일을 구글에서 하나 다운받아와서, 파일명을 dog2.jpeg로 변경해줬다.
그리고 아래 명령어를 입력한다.
exiftool dog2.jpeg
그럼 아래 그림과 같이 이 이미지 파일에 대한 메타데이터를 확인할 수 있다.
이번엔 이미지의 메타데이터를 수정해보자.
exiftool -artist=me dog2.jpeg
그럼 현재 디렉터리에 dog2.jpeg(메타데이터 바뀐 것), dog2.jpeg_original(수정 전 이미지)가 생긴다.
그리고 다시 dog2.jpeg의 메타데이터를 확인해보면,
메타데이터 내용이 더 추가됨으로써 파일 사이즈와 mtime, ctime, atime이 변한 것을 확인할 수 있다.
그리고 artist가 me로 변경된 것을 확인할 수 있다.
2. 파이썬 코드 활용하기
위와 유사하게, 파이썬으로도 가능하다.
먼저, exif를 설치해준다.
pip install exif
그리고 gedit read_exif.py을 한 다음, 아래 내용을 넣고 저장한다.
from exif import Image
original = 'dog2.jpeg'
with open(original, 'rb') as original:
img = Image(original)
print(dir(img))
dir()은 원본 이미지의 exif 속성들을 확인할 수 있는 함수이다.
그럼 아래와 같은 결과를 얻을 수 있다.
read_exif.py 파일을 조금 수정해서 몇가지 속성들에 대해 확인해보면,
from exif import Image
original = 'dog2.jpeg'
with open(original, 'rb') as original:
img = Image(original)
print("img.artist: ", img.artist)
print("img.delete: ", img.delete)
print("img.get: ", img.get)
print("img.y_and_c_positioning: ", img.y_and_c_positioning)
print("img.y_resolution: ", img.y_resolution)
아래와 같이 나오는 것을 확인할 수 있다.
보면, y_and_c_positioning, y_resolution 같은 경우엔 숫자이고, artist는 문자열인 것으로 보인다.
이번엔 파이썬 코드로 메타데이터를 수정해보자.
gedit revise_exif.py를 한 다음, 아래 내용을 입력하고 저장해준다.
from exif import Image
original = 'dog2.jpeg'
with open(original, 'rb') as original:
img = Image(original)
img.artist = 'me2'
with open('modified_original', 'wb') as new:
new.write(img.get_file())
dog2.jpeg의 artist 부분을 me2로 바꾼 다음, 이를 modified_original 파일로 저장하라는 의미이다.
python3 revise_exif.py로 이 코드를 실행시킨 뒤, modified_original을 확인해보면 아래와 같이 artist가 me2로 변경된 것을 확인할 수 있다.
그리고 이미지를 확인해보면,
이렇게 육안으로 보기에는 원본(dog2.jpeg)과 동일한 강아지 사진임을 확인할 수 있다.
'프로그래밍 > 파이썬' 카테고리의 다른 글
[데이터프레임] column 삭제 (0) | 2023.02.26 |
---|---|
[데이터프레임] csv 파일 불러오기, 내보내기 (0) | 2022.03.14 |