[Swift] 앨범의 이미지를 가져오는 방법(UIImagePickerController)

이경은·2024년 2월 26일
0
post-custom-banner

iOS앱으로 이미지를 가져오는 작업이 필요해서 UIImagePickerController를 사용해보았습니다.

결론적으로는 비슷한 기능을 PHPickerViewController로 다시 구현할 예정이지만, 우선 사용하는 방법을 기록해보겠습니다.

1. 전역변수로 imagePicker 생성

let imagePicker = UIImagePickerController()

2. picker를 보여줄 메서드 정의

@objc func photoButtonTapped() {
	self.present(self.imagePicker, animated: true)
}

3. viewDidLoad에 imagePicker의 속성을 지정

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

.sourceType

.camera : 새로운 사진을 촬영한다.

.savedPhotoAlbum, .photoLibrary : 두 가지는 차이점은 딱히 없음..

차이점이 궁금하다면, What's the difference between Camera Roll and Photo Library? : StackOverflow

.allowsEditing : Bool

: 사진 선택 시, 사진을 편집(crop)하여 지정할 수 있습니다.

4. extension - UIImagePickerControllerDelegate, UINavigationControllerDelegate

extension WritingViewController :     func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        var newImage: UIImage? = nil
        
        if let selectedImage = info[UIImagePickerController.InfoKey.editedImage] {
            newImage = selectedImage as? UIImage
        } else if let selectedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
            newImage = selectedImage
        }
        self.imageView.image = newImage
        dismiss(animated: true, completion: nil)
    }

마치며

사진을 여러장 선택하는 것이 필요했는데, UIImagePickerController는 사진을 여러장 첨부하는 것이 불가능해서.. 그리고 아래처럼 PHPickerViewController를 사용하라는 말에 따라 바꿔서 사용하기로 하였습니다.😂

PHPickerViewController를 사용하는 방법은 이어서 올리도록 하겠습니다.
😂

post-custom-banner

0개의 댓글