使用AVCapture在横向模式下捕捉图片

时间:2016-09-07 13:44:46

标签: ios uiimage avcapture

目前,我的ios应用程序在运行时设置为横向模式。视图中的相机预览也是横向的,但是当我拍照时,它是以纵向模式拍摄的。我想知道如何才能以横向模式捕捉图像。下面是我的Camera Preview和TakePhoto功能的代码。

override func viewWillAppear(animated: Bool) {

    let devices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo)
    for device in devices {
        if device.position == AVCaptureDevicePosition.Back {

            do {
                let input = try AVCaptureDeviceInput(device: device as! AVCaptureDevice)
                if captureSession.canAddInput(input){
                    captureSession.addInput(input)
                    sessionOutput.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]

                    if captureSession.canAddOutput(sessionOutput){
                        captureSession.addOutput(sessionOutput)
                        captureSession.startRunning()
                        previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
                        previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
                        previewLayer.connection.videoOrientation = AVCaptureVideoOrientation.LandscapeRight
                        CameraView.layer.addSublayer(previewLayer)

                        previewLayer.position = CGPoint(x: self.CameraView.frame.width / 2, y: self.CameraView.frame.height / 2)
                        previewLayer.bounds = CameraView.frame

                    }
                }

            }
            catch{
                print("ERror")
            }
        }
    }
}


@IBAction func TakePhoto(sender: UIButton) {
    tags = tags + 1
    TagsFired.text = "Tags Fired \(tags)"

    if let videoConnection = sessionOutput.connectionWithMediaType(AVMediaTypeVideo){

        sessionOutput.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {
            buffer, error in

            let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer)
            UIImageWriteToSavedPhotosAlbum(UIImage(data: imageData)!, nil, nil, nil)

            })
    }
}

1 个答案:

答案 0 :(得分:0)