Извлекайте изображения из DJI Drone с данными EXIF

Я использую DJISDK в iOS для загрузки фотографий с самолета.

Я использую downloadSelectedFiles метод из PlaybackManager учебный класс.

Вот мой обратный вызов процесса:

process: { (data, error) in
    if data != nil{
        if self.downloadedImageData != nil{
            self.downloadedImageData!.append(data!)
        }else{
            self.downloadedImageData = data!
        }

    }
}

И это обратный вызов завершения файла:

fileCompletion: {
    self.downloadedFilesCount += 1
    let image = UIImage(data: self.downloadedImageData!)
    if let img = image {
        self.downloadedImagesArray?.append(img)
    }
    self.downloadedImageData = nil         
}

Я правильно получаю изображение, но без данных EXIF. Как я могу получить эту информацию и добавить ее к изображению? Я уже скачал и попробовал iOS-MediaManagerDemo, и это то же самое, загружает изображение, но без данных exif, но официальное приложение DJI Go получает всю информацию, поэтому должен быть какой-то способ сделать это.

1 ответ

Решение

Есть также аналогичная проблема на их форумах в отношении пустых метаданных и downloadSelectedFilesWithPreparation, Пользователь, который создал сообщение, также нашел решение:

Я решил проблему, не преобразовывая NSData в какой-либо формат, вместо этого сохранил NSData напрямую. Использование PHAssets и временного файла для хранения NSData, поскольку PHAssets принимает данные только от URL.


Попробуйте использовать fetchFileDataWithOffset: updateQueue: updateBlock (он будет вызван fetchFileData(with:updateQueue:updateBlock) в Свифт)

[...] выборка данных мультимедиа вернет все данные для видео или изображения


Пример кода (objc): здесь

Другие вопросы по тегам