Advertisement
Guest User

Untitled

a guest
Aug 29th, 2015
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. import UIKit
  2. import AVFoundation
  3.  
  4.  
  5. class ViewController: UIViewController, UINavigationControllerDelegate, UIImagePickerControllerDelegate {
  6.  
  7.  
  8. @IBOutlet weak var previewView: UIView!
  9.  
  10. @IBOutlet weak var capturedImage: UIImageView!
  11.  
  12.  
  13. var manager: OneShotLocationManager?
  14.  
  15. let captureSession = AVCaptureSession()
  16. var captureDevice: AVCaptureDevice?
  17. var stillImageOutput: AVCaptureStillImageOutput?
  18. var previewLayer = AVCaptureVideoPreviewLayer()
  19.  
  20.  
  21. override func viewWillAppear(animated: Bool) {
  22.  
  23. // set view background color
  24. view.backgroundColor = (UIColor.blackColor())
  25. NSUserDefaults.standardUserDefaults().setObject("black", forKey: "backColor")
  26. NSUserDefaults.standardUserDefaults().synchronize()
  27.  
  28.  
  29.  
  30. captureSession.sessionPreset = AVCaptureSessionPresetHigh
  31.  
  32. let devices = AVCaptureDevice.devices()
  33.  
  34. for device in devices {
  35. if (device.hasMediaType(AVMediaTypeVideo)) {
  36. if(device.position == AVCaptureDevicePosition.Back) {
  37. captureDevice = device as? AVCaptureDevice
  38. }
  39. }
  40. }
  41.  
  42. if captureDevice != nil {
  43. beginSession()
  44. }
  45. }
  46.  
  47.  
  48. override func viewDidLoad() {
  49. super.viewDidLoad()
  50. }
  51.  
  52.  
  53. func beginSession() {
  54. do {
  55. let input = try AVCaptureDeviceInput(device: captureDevice)
  56. captureSession.addInput(input)
  57. } catch let error as NSError {
  58. print(error)
  59. }
  60.  
  61. stillImageOutput = AVCaptureStillImageOutput()
  62. stillImageOutput!.outputSettings = [AVVideoCodecKey: AVVideoCodecJPEG]
  63. captureSession.addOutput(stillImageOutput)
  64.  
  65. previewLayer = AVCaptureVideoPreviewLayer(session: captureSession)
  66. previewView.layer.addSublayer(previewLayer)
  67. previewLayer.frame = previewView.bounds
  68.  
  69.  
  70.  
  71.  
  72. captureSession.startRunning()
  73.  
  74. }
  75.  
  76. @IBAction func didPressTakePhoto(sender: UIButton) {
  77. if let videoConnection = stillImageOutput!.connectionWithMediaType(AVMediaTypeVideo) {
  78. videoConnection.videoOrientation = AVCaptureVideoOrientation.Portrait
  79. stillImageOutput?.captureStillImageAsynchronouslyFromConnection(videoConnection, completionHandler: {(sampleBuffer, error) in
  80. if(sampleBuffer != nil) {
  81. let imageData = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(sampleBuffer)
  82. let dataProvider = CGDataProviderCreateWithCFData(imageData)
  83. var decode: CGFloat = 0
  84. let cgImageRef = CGImageCreateWithJPEGDataProvider(dataProvider, &decode, true, CGColorRenderingIntent.RenderingIntentDefault)
  85.  
  86.  
  87.  
  88. let image = UIImage(CGImage: cgImageRef!, scale: 1.0, orientation: UIImageOrientation.Right)
  89. self.capturedImage.image = image
  90. }
  91. })
  92. }
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement