Rendering Image - Plogging/Plogging_iOS GitHub Wiki

Rendering Image

  • 커스텀 카메라 구현 후, 이미지 렌더링 작업 처리

    Custom Camera

    • AVCapturePhotoCaptureDelegate로 커스텀 카메라 구현

      • AVCaptureSession

        • capture activity 를 다루며 input device에서 outputs을 capture할 수 있도록 데이터의 흐름을 관리하는 object
        captureSession = AVCaptureSession()
        captureSession.sessionPreset = .photo
        
        
      • AVCaptureDevice

        • 물리적인 capture device와 그와 관계 속성을 나타내는 object capture device는 AVCaptureSession object에 연결할 수 있는 input data(audio나 video)를 제공 class func default(for:) 와 class func default(_:for:position) 을 사용해서 device object를 생성
        guard let backCamera = AVCaptureDevice.default(for: AVMediaType.video) else {
            print("Unable to access backCamera")
            return
        }
        guard let frontCamera = AVCaptureDevice.default(.builtInWideAngleCamera, for: .video, position: .front) else {
            print("Unable to access frontCamera")
            return
        }
        
        
      • AVCaptureDeviceInput

        • capture session에 input data를 제공하는 object
      • AVCapturePhotoOutput

        • 스틸 이미지, 라이브 포토, 기타 사진 워크 플로우에 대한 capture output
        let backCameraInput = try AVCaptureDeviceInput(device: backCamera)
        stillImageOutput = AVCapturePhotoOutput()
        if captureSession.canAddInput(backCameraInput) && captureSession.canAddOutput(stillImageOutput) {
            captureSession.addInput(backCameraInput)
            captureSession.addOutput(stillImageOutput)
            setUpLivePreview()
        }
        
      • AVCapturePhotoSettings

        • 단일 사진 캡쳐 요청에 사용할 기능 및 설정의 사양을 정의하는 object
        let settings = AVCapturePhotoSettings(format: [AVVideoCodecKey: AVVideoCodecType.jpeg])  
        

    Image Rendering

    • ImageRederingMaker
      • baseView에 targetVeiw를 addSubView()하고, 이미지화 시켜주는 객체
    • PloggingResultImageMaker
      • PloggingInfoViewCreater에서 targetVeiw를 받아 baseView에 addSubView()하고, 이미지화 시켜주는 객체
    • PloggingInfoViewCreater
      • PloggingResultImageMaker의 targetVeiw를 생성하는 객체

reference

AVCapturePhotoCaptureDelegate(https://developer.apple.com/documentation/avfoundation/avcapturephotocapturedelegate)