iOS 自定義相機捕捉

最基本的捕獲圖像

  • 需要一個session:
let session = AVCaptureSession()
  • 需要相機設備輸入,前置或者后置:
let devices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo)
        for device in devices {
            if device.position == position {
                captureDevice = device as! AVCaptureDevice
            }
        }

position為init時指定的前置或者后置相機位置

  • 現在有了相機設備,就可以獲得AVCaptureDeviceInput,將它設為session的輸入:
do {
            input = try AVCaptureDeviceInput.init(device: captureDevice)
            if session.canAddInput(input) {
                session.addInput(input)
            }
        } catch {
            print("add video input error")
        }
}
  • 如果獲得了相機使用權限,顯示相機圖像流簡單的方法是用AVCaptureVideoPreviewLayer:
previewLayer = AVCaptureVideoPreviewLayer.init(session: session)
previewLayer.videoGravity = AVLayerVideoGravityResizeAspectFill
 previewLayer.frame = CGRectMake(0, 0, kScreenWidth, kScreenHeight - kCameraBottomHeight - kNavigationHeight)

使用相機

  • 初始化preset:
camera = SSCamera.init(sessionPreset: AVCaptureSessionPresetPhoto, position: .Front)
  • 添加上previewLayer:
cameraView.preview.layer.addSublayer(camera.previewLayer)

拍完照圖像翻轉

  • 相機在不同的方向拍照時,拍出的照片帶有方向信息,以前置拍照為例,如果想讓前置所見即所得,應該這樣:
outputImage = UIImage(CGImage: inputImage.CGImage!, scale: inputImage.scale, orientation: UIImageOrientation.LeftMirrored)
  • 然后再來一次繪制,下面的方法會把圖片按照當前的方向繪制出來:
UIGraphicsBeginImageContext(size)
inputImage.drawInRect(CGRectMake(0,0, size.width, size.height))
let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()

github地址

微信公眾號

開發(fā)者思維 devthinking

QQ交流群:295976280

iOS交流群(一)群二維碼.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 目錄相機基本實現步驟捕捉會話——AVCaptureSession捕捉輸入——AVCaptureDeviceInpu...
    cdcyd閱讀 34,611評論 33 163
  • 相機屬于系統(tǒng)硬件,這就需要我們來手動調用iPhone的相機硬件,分為以下步驟: 1、首先聲明以下對象 #impor...
    清蘂翅膀的技術閱讀 1,690評論 0 0
  • 1、首先聲明以下對象 #import//捕獲設備,通常是前置攝像頭,后置攝像頭,麥克風(音頻輸入)@propert...
    zhong_JF閱讀 522評論 0 0
  • 前段時間公司的項目需要做自己的自定義相機和照片水印。抽空記一下筆記。文末有Demo 實現了相機的自定義 和水印、濾...
    iii余光閱讀 5,903評論 5 13
  • 夜鶯2517閱讀 128,212評論 1 9

友情鏈接更多精彩內容