Создание эскиза из видео всегда поворачивается в UIImageView

Я использую UIImagePickerController для выбора видео или изображения из галереи пользователя. С фотографиями проблем нет, все отображается так, как должно быть. Проблема возникает, когда я пытаюсь создать миниатюру для видео.

По сути, уменьшенное изображение может оказаться перевернутым или повернутым на 90 градусов влево или вправо. Я не уверен, почему это происходит. Я что-то упускаю или делаю что-то не так?

extension PostVC : UIImagePickerControllerDelegate, UINavigationControllerDelegate {

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    if let videoUrl = info[UIImagePickerController.InfoKey.mediaURL] as? URL {
        if let thumbnail = self.generateThumbnailForImage(videoUrl) {
            self.videoUrl = videoUrl
            self.photoImageView.image = thumbnail
            self.selectedImage = thumbnail
        }
    }
    if let image = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
        selectedImage = image
        photoImageView.image = image
        shareButton.isEnabled = true
    }
    dismiss(animated: true, completion: nil)
}

func generateThumbnailForImage(_ fileUrl: URL) -> UIImage? {
    let asset = AVAsset(url: fileUrl)
    let imageGenerator = AVAssetImageGenerator(asset: asset)
    do {
        let thumbnailCGImage = try imageGenerator.copyCGImage(at: CMTimeMake(value: 1, timescale: 10), actualTime: nil) // 1 sec
        return UIImage(cgImage: thumbnailCGImage)

    } catch let err {
        SVProgressHUD.showError(withStatus: err.localizedDescription)
    }
    return nil
  }
}

person Dani    schedule 23.10.2018    source источник


Ответы (1)


Кажется, что установка imageGenerator.appliesPreferredTrackTransform = true решает эту проблему.

person Dani    schedule 23.10.2018