使用Photo Framework将元数据附加到图像

时间:2016-08-29 12:59:46

标签: ios objective-c swift photosframework

用户使用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,无论如何,我只想附加它。我不知道。让我知道你的建议吗?

0 个答案:

没有答案