그냥 사는 이야기

python으로 image 처리를 위한 exif 정보 다루기 본문

Development/개발언어

python으로 image 처리를 위한 exif 정보 다루기

없다캐라 2020. 11. 24. 10:40
반응형

python 으로 이미지의 exif 정보를 구해오는 3가지 방법을 정리해 보았습니다. 각각의 패키지들 간에 장단점이 있겠지만 다룰 수 있는 메타항목들은 차이가 있습니다. 그리고 디바이스별로 다양한 jpg버전의 지원유무도 차이가 있습니다.

Using PIL(Python Image Library)

$ pip3 install image

image 패키지를 사용합니다. 그런데 이 패키지는 이미지파일에 대해서만 사용 가능한 것 같습니다.

import PIL.Image
 
img1 = PIL.Image.open("roses.jpg")
meta_data = img1._getexif()
 
print(meta_data)
print(img1.height, img1.width)

Using Exifread

 

$ pip3 install exifread

 

import exifread
 
with open("roses.jpg", "rb") as f:
    tags = exifread.process_file(f)
    # print(tags)
 
print(tags["Image Model"])

Using Exif

 

$ pip3 install exif

exif 패키지를 통해서 gps의 latitude, longitude 정보를 얻어오는 예제입니다. 이걸로 위도 경도 정보를 구할 수 있습니다.

from exif import Image
 
with open("roses.jpg", "rb") as f:
    img = Image(f)
    # print(img)
 
print(img.has_exif)
print(img.gps_altitude_ref, img.model, img.datetime)
 
print(img.gps_latitude, img.gps_longitude)
 
img.gps_latitude = (37.0, 31.0, 20.0)
img.gps_longitude = (127.0, 6.0, 59.6)
 
print(img.gps_latitude, img.gps_longitude)
 
with open("roses2.jpg", "wb") as new_image_file:
    new_image_file.write(img.get_file())

Reference

Comments