Computer >> 컴퓨터 >  >> 프로그램 작성 >> IOS

Swift를 사용하여 iOS 카메라에서 사진 캡처

<시간/>

카메라에서 신속하게 사진을 캡처하기 위해 iOS SDK의 프레임워크인 AVFoundation을 사용할 수 있지만 카메라 애플리케이션에 많은 사용자 정의 기능이 필요할 때까지는 사용을 피해야 합니다. 이 예에서는 카메라에서 사진만 캡처하여 뷰에 표시합니다. 이 예에서는 AVFoundation 대신 이미지 선택기를 사용합니다.

먼저 프로젝트를 만들고 스토리보드의 뷰 컨트롤러에 이미지 뷰를 추가합니다. 해당 클래스에 콘센트를 만듭니다. 이제 ViewController 클래스 내부에서 -

를 준수합니다.
class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate

그런 다음 objc 함수를 만듭니다.

@objc func openCamera(){
}

이제 보기가 로드되면 보기 컨트롤러에 탭 제스처 인식기를 추가합니다. 그러면 화면을 탭할 때 openCamera 함수를 호출해야 합니다.

override func viewDidLoad() {
   super.viewDidLoad()
   let gesture = UITapGestureRecognizer(target: self, action: #selector(openCamera))
   self.view.addGestureRecognizer(gesture)
}

이제 함수에서 다음 코드 줄을 추가합니다.

@objc func openCamera() {
   let imgPicker = UIImagePickerController()
   imgPicker.delegate = self
   imgPicker.sourceType = .camera
   imgPicker.allowsEditing = false
   imgPicker.showsCameraControls = true
   self.present(imgPicker, animated: true, completion: nil)
}

위 단계를 완료했으면 이제 UIImagePickerControllerDelegate의 didFinishPickingMediaWithInfo 메소드를 구현하고 이 메소드 내부에서 사용자가 카메라에서 캡처한 이미지를 가져옵니다.

func imagePickerController(_ picker: UIImagePickerController,
didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey :
Any]) {
   if let img = info[UIImagePickerController.InfoKey.editedImage] as?
   UIImage {
         self.imgV.image = img
         self.dismiss(animated: true, completion: nil)
      }
      else {
         print("error")
      }
   }
}

이제 info.plist에 카메라 사용 설명 키를 추가하고 애플리케이션이 카메라를 사용하려는 이유에 대한 설명을 제공해야 합니다. 이것을 iPhone에서 실행하고 이미지를 캡처하면 이것이 생성된 결과입니다. 또한 이 애플리케이션은 시뮬레이터에서 실행할 수 없습니다.

Swift를 사용하여 iOS 카메라에서 사진 캡처