[swift] Swift에서 카메라로 도큐먼트 스캐너 앱 만들기

최근에는 종이 문서를 스캔하여 디지털화하는 앱들이 매우 인기를 끌고 있습니다. 이번 글에서는 Swift를 사용하여 iOS 앱에서 카메라를 사용하여 도큐먼트 스캐너를 만드는 방법에 대해 알아보겠습니다.

필요한 라이브러리 가져오기

먼저, 카메라로 찍은 이미지를 처리하기 위해 AVFoundation 라이브러리를 가져와야 합니다. 이 라이브러리는 iOS 기기의 카메라와 마이크와 같은 다양한 미디어 입력을 제어하는 데 사용됩니다.

import AVFoundation

카메라 액세스 권한 요청

앱이 카메라에 액세스할 수 있도록 사용자에게 권한을 요청해야 합니다. 이를 위해 Info.plist 파일에 앱이 카메라 액세스에 대한 설명을 추가해야 합니다.

<key>NSCameraUsageDescription</key>
<string>카메라에 액세스하여 도큐먼트를 스캔합니다.</string>

카메라 뷰 컨트롤러 생성

AVFoundation을 사용하여 카메라로부터 이미지를 가져오는 CameraViewController를 생성하고, UIImagePickerController로 카메라에 액세스합니다.

import UIKit

class CameraViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {
    let imagePicker = UIImagePickerController()

    override func viewDidLoad() {
        super.viewDidLoad()

        if UIImagePickerController.isSourceTypeAvailable(.camera) {
            imagePicker.delegate = self
            imagePicker.sourceType = .camera
            present(imagePicker, animated: true, completion: nil)
        } else {
            print("카메라에 액세스할 수 없습니다.")
        }
    }

    // delegate method to handle the captured image
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let selectedImage = info[.originalImage] as? UIImage {
            // Process the captured image here
        }
    }
}

이미지 처리

사용자가 카메라로 도큐먼트를 찍으면, didFinishPickingMediaWithInfo 메서드가 호출되어 이미지를 얻게 됩니다. 이제 해당 이미지를 처리하여 필요한 작업을 수행할 수 있습니다.

결론

이제 Swift를 사용하여 iOS 앱에서 카메라로 도큐먼트를 스캔하는 방법을 알아보았습니다. 카메라 액세스 권한을 요청하고, AVFoundation 라이브러리를 사용하여 카메라로부터 이미지를 가져와 처리할 수 있었습니다. 이를 바탕으로 실제 도큐먼트 스캐너 앱을 더욱 발전시켜 나갈 수 있을 것입니다.

참고 자료: AVFoundation Documentation