2017-09-26 5 views
0

장치 사진 갤러리에서 사진의 위치를 ​​가져와야합니다. 그렇게하려면 이미지의 Exif 데이터를로드하려고합니다. 이 내 코드입니다 : 나는 장치, 앱 충돌에 내 코드를 실행하려고하면iOS Swift 저장된 사진의 EXIF ​​데이터에 액세스 할 수 없습니다.

import ImageIO 

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 
     let image = info[UIImagePickerControllerOriginalImage] as? UIImage 
     let ciImage = CIImage(image: image!) 
     let imageProperties = CGImageSourceCopyPropertiesAtIndex(ciImage as! CGImageSource, 0, nil) as Dictionary? 
     if let dict = imageProperties as? [String: Any] { 
     print(dict) 
    } 
    } 

. 문제가 캐스트에 있다고 생각하지만 일부 조작을 시도했지만 UIImageCFImageSource 유형으로 변환 할 수 없습니다.

답변

1

CIImage (또는 UIImage도 아닌)을 CGImageSource으로 전송할 수 없습니다. .

guard let imageData = UIImageJPEGRepresentation(uiImage, 1) 
    else { fatalError("Error getting image data") } 

guard let imageSource = CGImageSourceCreateWithData(imageData as CFData, nil) 
    else { fatalError("Error creating image source") } 

let properties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil) 

UIImageJPEGRepresentation 반환 원래에 어떤 형식 uiImage 중요하지 않습니다 있도록 JPEG 이미지로 이미지

+1

Thans를, 그것은 완벽하게 작동하십시오 CGImageSource 할 만들려면 – Szanownego