[swift] 이미지 EXIF 데이터 읽기

이미지 파일에는 흥미로운 정보인 EXIF(Exchangeable Image File Format) 데이터가 포함되어 있습니다. EXIF 데이터에는 사진이 찍힌 날짜, 카메라 제조사, 노출 시간 등 다양한 정보가 담겨 있습니다.

Swift에서는 ImageIO 프레임워크를 사용하여 이미지의 EXIF 데이터를 읽을 수 있습니다. 다음은 Swift로 이미지의 EXIF 데이터를 읽는 예제 코드입니다.

import ImageIO

func readExifData(from image: UIImage) -> [String: Any]? {
    guard let imageData = image.jpegData(compressionQuality: 1),
          let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil)
    else {
        return nil
    }
    
    guard let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) as? [String: Any],
          let exifData = imageProperties[kCGImagePropertyExifDictionary as String] as? [String: Any]
    else {
        return nil
    }
    
    return exifData
}

if let image = UIImage(named: "sample.jpg"),
   let exifData = readExifData(from: image)
{
    print(exifData)
}

이 코드는 readExifData(from:) 함수를 통해 이미지의 EXIF 데이터를 읽는 기능을 제공합니다. 함수는 UIImage를 입력으로 받고, 이미지 데이터를 CGImageSource로 변환한 다음 CGImageSourceCopyPropertiesAtIndex를 이용하여 EXIF 데이터를 추출합니다. 마지막으로 추출된 데이터를 딕셔너리 형태로 반환합니다.

위 코드를 실행하면 sample.jpg 이미지의 EXIF 데이터가 출력됩니다. 출력 결과를 확인하면 사진이 찍힌 시간, 카메라 모델 등의 정보를 확인할 수 있습니다.

이 예제 코드는 Swift에서 이미지의 EXIF 데이터를 읽는 방법을 보여주는 간단한 예시입니다. ImageIO 프레임워크를 활용하여 다양한 이미지 처리 작업을 수행할 수 있으니, 관심 있는 분들은 더 자세한 공식 문서를 참고하시기 바랍니다.

참고 자료