Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- import AVFoundation
- class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
- @IBOutlet weak var previewView: UIView!
- @IBOutlet weak var capturedImage: UIImageView!
- var manager: OneShotLocationManager?
- let captureSession = AVCaptureSession()
- var captureDevice: AVCaptureDevice?
- var stillImageOutput: AVCaptureStillImageOutput?
- var previewLayer = AVCaptureVideoPreviewLayer()
- override func viewWillAppear(animated: Bool) {
- // set view background color
- view.backgroundColor = (UIColor.blackColor())
- NSUserDefaults.standardUserDefaults().setObject("black", forKey: "backColor")
- NSUserDefaults.standardUserDefaults().synchronize()
- captureSession.sessionPreset = AVCaptureSessionPresetHigh
- let devices = AVCaptureDevice.devices()
- for device in devices {
- if (device.hasMediaType(AVMediaTypeVideo)) {
- if(device.position == AVCaptureDevicePosition.Back) {
- captureDevice = device as? AVCaptureDevice
- }
- }
- }
- if captureDevice != nil {
- beginSession()
- }
- }
- override func viewDidLoad() {
- super.viewDidLoad()
- }
- func beginSession() {
- do {
- let input = try AVCaptureDeviceInput(device: captureDevice)
- captureSession.addInput(input)
- } catch let error as NSError {
- print(error)
- }
- stillImageOutput = AVCaptureStillImageOutput()
- stillImageOutput!.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
- captureSession.addOutput(stillImageOutput)
- previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
- previewView.layer.addSublayer(previewLayer)
- previewLayer.frame = previewView.bounds
- captureSession.startRunning()
- }
- @IBAction func didPressTakePhoto(sender: UIButton) {
- if let videoConnection = stillImageOutput!.connectionWithMediaType(AVMediaTypeVideo) {
- videoConnection.videoOrientation = AVCaptureVideoOrientation.Portrait
- stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {(sampleBuffer, error) in
- if(sampleBuffer != nil) {
- let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
- let dataProvider = CGDataProviderCreateWithCFData(imageData)
- var decode: CGFloat = 0
- let cgImageRef = CGImageCreateWithJPEGDataProvider(dataProvider, &decode, true, CGColorRenderingIntent.RenderingIntentDefault)
- let image = UIImage(CGImage: cgImageRef!, scale: 1.0, orientation: UIImageOrientation.Right)
- self.capturedImage.image = image
- }
- })
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement