[英]How to get original (EXIF?) creation date/time of PHAsset?
PHAsset
有一個creationDate
屬性,它以 UTC PHAsset
給出資產的創建日期。
如果我在 UTC-6 晚上 10:52 拍攝照片,則creationDate
屬性是 03:52 AM。
我應該如何知道拍攝照片的“真實”時間? creationDate
屬性未提供時區信息,因此我無法將其調整回晚上 10:52 - 我不知道在調整時區是哪個時區...
我知道我可以使用PHImageManager requestImageDataForAsset
獲得 EXIF 創建日期(或至少嘗試),並使用那里返回的數據來獲取實際上是晚上PHImageManager requestImageDataForAsset
的 EXIF 創建日期,但這會導致照片的性能非常慢在 iCloud 中(我需要用戶庫中所有資產的創建日期值)。 此外,我無法弄清楚如何獲取視頻的 EXIF 創建日期。
我也知道有一些方法可以從CLLocation
獲取時區,我可以用它來調整creationDate
- 但這些方法要么是速率有限的,要么是不准確的
是否有另一種更簡單的方法來獲取此原始創建日期值?
回顧一下:
您可以嘗試使用PHContentEditingInput
。 iCloud 圖像也可能會很慢,但值得嘗試,因為我認為沒有其他方法可以做到這一點:(
這種方法不需要ImageIO
導入並且需要更少的代碼所以也許它會比PHImageManager requestImageDataForAsset
好一些
可以使用這個PHAsset
分類快速試用: https : //github.com/zakkhoyt/PHAsset-Utility
可以獲取exif詳細信息如下:
let options = PHContentEditingInputRequestOptions()
asset.requestContentEditingInput(with: options) { input, _ in
guard let url = input?.fullSizeImageURL else { return }
guard let image = CIImage(contentsOf: url) else { return }
guard let exif = image.properties["{Exif}"] as? [String: Any] else { return }
print(exif["DateTimeOriginal"] ?? "")
print(exif["SubsecTimeDigitized"] ?? "")
}
這打印:
2021:01:04 11:47:07
177
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.