diff --git a/Source/Helpers/Extensions/PHCachingImageManager+Extensions.swift b/Source/Helpers/Extensions/PHCachingImageManager+Extensions.swift index 4aba1022..5e63b8e4 100644 --- a/Source/Helpers/Extensions/PHCachingImageManager+Extensions.swift +++ b/Source/Helpers/Extensions/PHCachingImageManager+Extensions.swift @@ -39,20 +39,24 @@ extension PHCachingImageManager { height: targetSize.height) if let imageRef = image.cgImage?.cropping(to: scaledCropRect) { let croppedImage = UIImage(cgImage: imageRef) - let exifs = self.metadataForImageData(data: data) + let exifs = self.exifDataForImageData(data: data) callback(croppedImage, exifs) } } } } - private func metadataForImageData(data: Data) -> [String: Any] { + private func exifDataForImageData(data: Data) -> [String: Any] { + var exifData: [String: Any] = [:] + if let imageSource = CGImageSourceCreateWithData(data as CFData, nil), - let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil), - let metaData = imageProperties as? [String: Any] { - return metaData + let imageProperties = CGImageSourceCopyPropertiesAtIndex(imageSource, 0, nil), + let propertiesDict = imageProperties as? [String: Any], + let exifDict = propertiesDict[kCGImagePropertyExifDictionary as String] as? [String: Any] { + exifData = exifDict } - return [:] + + return exifData } func fetchPreviewFor(video asset: PHAsset, callback: @escaping (UIImage) -> Void) {