[파이썬] Pillow 이미지의 지오태깅 정보 활용하기

Pillow은 Python에서 이미지 처리 작업을 수행하는 라이브러리로 널리 사용되고 있습니다. 이번 포스트에서는 Pillow을 사용하여 이미지의 지오태깅(Geotagging) 정보를 활용하는 방법에 대해 알아보겠습니다.

지오태깅이란?

지오태깅은 이미지에 위도(latitude), 경도(longitude)와 같은 지리적인 정보를 추가하는 것을 말합니다. 이를 통해 사진의 촬영 위치를 나타낼 수 있고, 지도 위에서 해당 위치를 확인할 수 있습니다.

Pillow 이미지로부터 지오태깅 정보 추출하기

Pillow을 사용하여 이미지로부터 지오태깅 정보를 추출하기 위해서는 다음과 같은 단계를 따를 수 있습니다.

  1. Pillow으로 이미지 열기
  2. 이미지의 지오태깅 정보 추출
  3. 추출한 정보 활용하기

이제 실제로 위의 단계를 코드로 구현해보겠습니다.

from PIL import Image
from PIL.ExifTags import TAGS

def get_geotagging_info(image_path):
    # 이미지 열기
    image = Image.open(image_path)
    
    # 이미지의 Exif 정보 추출
    exif_data = image._getexif()
    
    # Geotagging 정보 추출
    geotagging_info = {}
    for tag_id, value in exif_data.items():
        tag_name = TAGS.get(tag_id, tag_id)
        if tag_name == "GPSInfo":
            for key in value.keys():
                sub_tag_name = TAGS.get(key, key)
                geotagging_info[sub_tag_name] = value[key]

    return geotagging_info

# 이미지 경로
image_path = "image.jpg"

# 지오태깅 정보 추출
geotagging_info = get_geotagging_info(image_path)

# 추출한 정보 출력
print(geotagging_info)

위 코드에서 get_geotagging_info 함수는 이미지 파일의 경로를 입력으로 받아서 해당 이미지의 지오태깅 정보를 딕셔너리 형태로 반환하는 함수입니다.

Pillow 이미지에 지오태깅 정보 추가하기

이어서, 이미지에 지오태깅 정보를 추가하는 방법을 알아보겠습니다. 지오태깅 정보를 추가하기 위해서는 Pillow 이미지의 info 속성을 활용하면 됩니다.

from PIL import Image

def add_geotagging_info(image_path, geotagging_info):
    # 이미지 열기
    image = Image.open(image_path)

    # 이미지에 지오태깅 정보 추가
    image.info["GPSInfo"] = geotagging_info
    
    # 변경사항 저장
    image.save("image_with_geotagging.jpg")

위 코드에서 add_geotagging_info 함수는 이미지 파일의 경로와 지오태깅 정보를 입력으로 받아서 해당 이미지에 지오태깅 정보를 추가한 후 새로운 이미지로 저장하는 함수입니다.

결론

이미지의 지오태깅 정보는 사진의 촬영 위치 정보를 나타내는 중요한 요소입니다. Pillow을 사용하여 이미지로부터 지오태깅 정보를 추출하거나 이미지에 지오태깅 정보를 추가하는 것은 다양한 이미지 처리 작업에서 유용하게 활용될 수 있습니다.