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)과 동일한 강아지 사진임을 확인할 수 있다.

+ Recent posts