[英]Save image to photo album with datetime metadata
我正在嘗試使用writeImageDataToSavedPhotosAlbum
的元數據屬性將 GIF 保存到 iPhone 的相冊並添加日期/時間元數據,以便保存的 GIF 出現在用戶相冊中的不同位置,而不是末尾的默認位置相冊。
我試過做以下事情:
let metadata: [String: AnyObject]! = [kCGImagePropertyTIFFDictionary as String:
[kCGImagePropertyTIFFDateTime as String: dateTime!],
kCGImagePropertyExifDictionary as String:
[kCGImagePropertyExifDateTimeDigitized as String: dateTime!,
kCGImagePropertyExifDateTimeOriginal as String: dateTime!]]
library.writeImageDataToSavedPhotosAlbum(data, metadata: metadata, completionBlock: completionBlock)
元數據變量的調試打印顯示:
["{TIFF}": {
DateTime = "2015:10:09 20:07:48";
}, "{Exif}": {
DateTimeDigitized = "2015:10:09 20:07:48";
DateTimeOriginal = "2015:10:09 20:07:48";
}]
但是,設置元數據似乎不起作用,因為 GIF 仍然使用當前時間戳而不是我嘗試設置的時間戳保存在相冊的末尾。
看起來照片應用程序沒有根據圖像元數據中的日期進行排序(很可能是因為該元數據可以存儲在 iCloud 上,它可能在本地不可用)。 相反,它似乎按creationDate
排序,這是在PHAsset
定義的屬性。 您可以使用照片框架更改它。 像這樣的事情應該可以解決問題:
PHPhotoLibrary.sharedPhotoLibrary().performChanges({ () -> Void in
let request = PHAssetChangeRequest(forAsset: asset)
request.creationDate = dateTime!
}, completionHandler: { (success: Bool, error: NSError?) -> Void in
dispatch_async(dispatch_get_main_queue()) {
//done
}
})
但是,請注意,“相機膠卷”或“所有照片”相冊的排序方式與“年份”、“收藏夾”和“時刻”視圖不同。 出於某種原因,相機膠卷/所有照片不會按creationDate
排序,而年份、收藏和時刻會排序。 它也不使用照片元數據,所以我不確定它正在檢查該相冊的照片排序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.