ios 카메라를 만드는 두가지 방법 - 설명
ios 카메라를 만드는 두가지 방법 1
- UIImagePickerController 사용
-Foundation 프레임워크의 UIImagePickerController 클래스를 사용하면된다.
장점: 구현이 쉽다.
단점: 커스터마이징이 어렵다.
- AVCaptureDevice
- 다양한 커스터마이징 가능
AVCaptureSession
카메라를 시작을 선언해주는 역할을 한다.
일반적으로 별도의 카메라 큐를 만들어서 세션을 시작한다.
AVCaptureVideoPreviewLayer
카메라가 향하는 곳을 영상으로 볼 수 있다.
PreViewLayer는 영상이 나오는 화면을 가르킨다.
PreViewLayer는 AVCaptureDevice + AVCaptureSession + Input + Output을 갖춰야 한다.
AVCaptureDeviceInput
입력을 담당하는 부분
AVCaptureStillImageOutput
출력을 담당하는 부분
AVCaptureDevicePosition
입출력을 담당할 카메라가 전면인지 후면인지 지정하지 않았는지를 구분.
AVCaptureVideoVideoOrientation
폰이 세워져 있는지 거꾸로 있는지, 누워있는지 구분한다
세워져있을때 : Portrait
세워서 거꾸로: PortraitUpsideDown
누워있는지 : LandscapeRight, LandscapeLeft
PrevieLayer의 connection.videoOrientation 프로퍼티에 지정해주면된다.
AVAuthorizationStatus
카메라를 구동전, 카메라 세션을 시작하기전에 먼저 사용자로 부터 사용허가를 받았는지 체크해준다.
정의 안됨 notDetermined, 제한 Restricted, 거부당함 Denied, 허가 받음 Authorized
sessionPreset
카메라 세션의 해상도 설정
videoGravity
AVCapturePreviewLayer의 property 이다 . PreviewLayer의 사이즈를 조정하는 역할을 한다.
captureStillImageAsynchronouslyFromConnection
AVCaptureStillImageOutput의 메서드의 하나로 프리뷰 영상을 스냅샷해서 버퍼로 만들고 이미지화 한다.
jpegStillImageNSDataRepresentation
AVCaptureStillImageOutput의 메소드 하나로 위 메서드에서 생성한 버퍼를 이미지 데이터로 변환한다.
이 이미지는 uiimage 로 만들 수 있고, cgimage로 전환했다가 다시 uIimage로 변환 가능
AVAssetsLibrary
AssetsLibrary 프레임워크의 ALAssetsLibrary 클래스는 자칭의 사진라이브러리로 접근 할 수 있도록 한다.