AVCapturePhotoOutput проблема с портретной ориентацией

Я пытаюсь заменить средство выбора изображений по умолчанию на AVCapturePhotoOutput в моем приложении только для портретной ориентации. Снятые фотографии должны быть в портретной ориентации и не должны зависеть от ориентации устройства. Проблема в том, что когда я фотографирую в альбомной ориентации, это именно в альбомной ориентации. Перед захватом я пробовал следующее:

          let photoSettings = AVCapturePhotoSettings() 
    if let connection = photoOutput.connection(with: .video) {
        connection.videoOrientation = .portrait
    }
    photoOutput.capturePhoto(with: photoSettings, delegate: self)

Я также нашел это обсуждение https://developer.apple.com/forums/thread/102884 и попробовал:

          func photoOutput(_ output: AVCapturePhotoOutput, didFinishProcessingPhoto photo: AVCapturePhoto, error: Error?) {
    guard let imageData = photo.fileDataRepresentation() else {
        return
    }
    let tempURL = URL(fileURLWithPath: NSTemporaryDirectory(), isDirectory: true).appendingPathComponent(UUID().uuidString)
    do {
        try imageData.write(to: tempURL)
        let photoData = try Data(contentsOf: tempURL)
        let image = UIImage(data: photoData)
        onSelect?(image)
        return
    } catch  {}
    onSelect?(nil)

Но по-прежнему сохраняйте пейзажное изображение как пейзаж. Пожалуйста, проверьте, что не так в моем коде.

0 ответов

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