簡體   English   中英

使用日期時間元數據將圖像保存到相冊

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM