Как получить оригинальную (EXIF?) Дату и время создания PHAsset?
PHAsset
имеет creationDate
свойство, которое дает дату создания актива в формате UTC.
Если я сделаю снимок, сделанный в 22:52 UTC-6, свойство creationDate
будет 03:52 AM.
Как я должен знать "истинное" время снятой фотографии? Информация о часовом поясе не снабжается свойством creationDate
, поэтому я не могу настроить ее до 10:52 вечера - я понятия не имею, какой часовой пояс только при настройке...
Я знаю, что могу получить дату создания EXIF (или попытаться хотя бы) с помощью PHImageManager requestImageDataForAsset
и использовать данные, возвращенные туда, чтобы получить дату создания EXIF, которая на самом деле составляет 10:52 вечера, но это приводит к очень медленному результату, когда фотографии находятся в iCloud (мне нужно это значение даты создания для всех активов в пользовательской библиотеке). Кроме того, я не могу понять, как получить дату создания EXIF для видео.
Я также знаю, что есть способы получения часового пояса от CLLocation
, который я мог бы использовать для регулировки creationDate
- но эти методы либо скорость ограничены и/или неточные
Есть ли другой, более простой способ получить это первоначальное значение даты создания?
Напомним:
- Фотография сделана в 10:52 в UTC-6 Дата создания PHAsset - 03:52 в UTC Я хочу знать, как получить 10:52 PM UTC-6 дата/время.
Вы можете попробовать использовать PHContentEditingInput
. Вероятно, это будет медленным для изображений iCloud, но стоит попробовать, поскольку я не думаю, что есть другие способы сделать это :(
Этот подход не требует импорта ImageIO
и требует меньше кода, поэтому, возможно, он будет несколько лучше, чем PHImageManager requestImageDataForAsset
Вы можете использовать эту категорию PHAsset
чтобы быстро ее PHAsset
: https://github.com/zakkhoyt/PHAsset-Utility
Еще в рубрике
- Вопросы
- Photosframework
- Как получить оригинальную (EXIF?) Дату и время создания PHAsset?