[swift] 사진 및 카메라 기능 활용하기 (Photos, Camera)

iOS 앱을 개발하다 보면 사용자에게 사진을 찍거나 기존 사진을 선택할 수 있는 기능이 필요한 경우가 있습니다. 이번 포스트에서는 Swift 언어를 사용하여 iOS 앱에서 사진 및 카메라 기능을 활용하는 방법에 대해 알아보겠습니다.

카메라 접근 권한 설정하기

사용자가 카메라에 접근하려면 앱이 카메라에 대한 접근 권한을 요청해야 합니다. Info.plist 파일에 NSCameraUsageDescription 키를 추가하여 앱에서 카메라에 접근하는 목적을 설명하는 메시지를 작성해야 합니다.

<key>NSCameraUsageDescription</key>
<string>카메라에 접근하려 합니다.</string>

사진 가져오기

앱에서 기기의 사진을 선택하려면 UIImagePickerController를 사용합니다. UIImagePickerController를 초기화한 후, 사진을 선택한 뒤 원하는 처리를 수행할 수 있습니다.

import UIKit

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

    override func viewDidLoad() {
        super.viewDidLoad()
        imagePicker.delegate = self
        imagePicker.sourceType = .photoLibrary
    }

    @IBAction func selectPhotoButtonTapped(_ sender: UIButton) {
        present(imagePicker, animated: true, completion: nil)
    }

    func imagePickerController(_ picker: UIImagePickerController, 
                               didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let selectedImage = info[.originalImage] as? UIImage {
            // 선택한 사진을 사용하여 작업 수행
            imageView.image = selectedImage
        }
        dismiss(animated: true, completion: nil)
    }
}

카메라로 사진 찍기

카메라로 사진을 찍으려면 UIImagePickerController의 sourceType을 .camera로 설정하여 카메라를 열 수 있습니다.

@IBAction func takePhotoButtonTapped(_ sender: UIButton) {
    if UIImagePickerController.isSourceTypeAvailable(.camera) {
        imagePicker.sourceType = .camera
        present(imagePicker, animated: true, completion: nil)
    } else {
        // 기기에 카메라가 없는 경우에 대한 처리
    }
}

iOS 앱에서 사진 및 카메라 기능을 활용하는 방법에 대해 간단히 알아보았습니다. 카메라 접근 권한을 설정하고 UIImagePickerController를 사용하여 사진을 선택하거나 카메라로 사진을 찍을 수 있습니다.

참고 자료