用户使用Photo Library
从库中选择了该图片后,我已使用Photo Framework API成功将图片保存到UIImagePickerController
。
当我在我的应用程序中捕获图像时,我必须处理元数据。我可以保存位置& creationDate到新捕获的图像并将其保存到库中。
但问题是我想附加大量其他属性,我的意思是我要附加EXIF
& TIFF
属性。
EXIF
中有很多属性,
kCGImagePropertyExifDateTimeOriginal
kCGImagePropertyExifMaxApertureValue
kCGImagePropertyExifSpatialFrequencyResponse
kCGImagePropertyExifLensModel
我应该如何从当前设备获取这些值并将其附加到图像并将其保存到Photo Library
?
以下是我从Photo Library
获取图片后用于将图片保存到UIImagePickerController
的完整代码。在将其保存到Photo Library
之前,我想在此函数中的某处附加元数据行。
//MARK: Saving an Image to PhotoLibrary and taking back the PHAsset
class func savingThis(image : UIImage, completion : (asset : PHAsset?) -> ())
{
var localIdentifier : String?
let imageManager = PHPhotoLibrary.sharedPhotoLibrary()
imageManager.performChanges({ () -> Void in
let request = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
request.location = LocationManager.sharedInstance.locationManager.location
request.creationDate = NSDate()
// Add more properties here - somewhere EXIF, TIFF....
if let properAsset = request.placeholderForCreatedAsset {
localIdentifier = properAsset.localIdentifier
}
else {
completion(asset: nil)
}
}, completionHandler: { (success, error) -> Void in
if let properLocalIdentifier = localIdentifier {
let result = PHAsset.fetchAssetsWithLocalIdentifiers([properLocalIdentifier], options: nil)
if result.count > 0 {
completion(asset: result[0] as? PHAsset)
}
else {
completion(asset: nil)
}
}
else {
completion(asset: nil)
}
})
}
这是一个愚蠢的问题吗?如果有其他方式来附加元数据,我不必使用Photos Framework,无论如何,我只想附加它。我不知道。让我知道你的建议吗?