У меня есть простой код для получения uiImage из библиотеки фотографий:
private func getDataOfMedia (asset:PHAsset) -> Data {
let requestOptions = PHImageRequestOptions()
requestOptions.isSynchronous = true
requestOptions.isNetworkAccessAllowed = true
let imgManager = PHImageManager.default()
var imgData = Data()
// Request Image
imgManager.requestImage(for: asset, targetSize: PHImageManagerMaximumSize, contentMode: .default, options: requestOptions) { (uiimage, info) in
if let uiimage = uiimage {
DispatchQueue.main.async {
if let imageData = uiimage.jpegData(compressionQuality: 1) {
imgData = imageData
}
}
}
}
return imgData
}
, но, конечно, я не вижу данные камеры, данные о местоположении и данные exif изображения, сохраненного из func getDataOfMedia(asset: asset)
, но если я загружаю одно и то же изображение непосредственно из Photo
, я могу видеть данные камеры, данные о местоположении и данные EXIF. Как я могу добавить данные камеры, данные о местоположении и данные EXIF к данным, которые у меня есть от requestimage
PHAsset? Как добавить уникальный идентификатор, например asset.localIdentifier
, чтобы узнать, что я загрузил это изображение?
ОБНОВЛЕНИЕ Мне удалось извлечь данные камеры, данные о местоположении и данные exif из изображение из объекта актива, с этим кодом:
private func getDataOfImageC (asset:PHAsset, completion: @escaping (Data) -> Void) {
//For get exif data
let options = PHContentEditingInputRequestOptions()
options.isNetworkAccessAllowed = true //download asset metadata from iCloud if needed
asset.requestContentEditingInput(with: options) { (contentEditingInput: PHContentEditingInput?, _) -> Void in
let fullImage = CIImage(contentsOf: contentEditingInput!.fullSizeImageURL!)
let image = UIImage(ciImage: fullImage!)
print(fullImage!.properties)
for (key, value) in fullImage!.properties {
print("key: \(key) - value: \(value)")
}
completion(image.jpegData(compressionQuality: 1)!)
}
}
, но с преобразованием CIImage в UIImage в формат данных, чтобы сохранить его локально, оно теряет все данные камеры, данные о местоположении и данные exif. Я надеюсь, что кто-то поможет мне.