【Swift 3】フォトライブラリ or カメラから写真を読み込む

【Swift 3】フォトライブラリ or カメラから写真を読み込む

フォトライブラリから画像を取得する方法です。カメラで撮影した写真の取得もほとんど同じなのでセットで説明します

スポンサーリンク
Google336 記事下

info.plistにプライバシーの情報を追加

フォトライブラリを使うときは
Privacy – Photo Library Usage Description(NSPhotoLibraryUsageDescription)

カメラを使うときは
Privacy – Camera Usage Description(NSCameraUsageDescription)

を追加して利用目的を書きます
これを入れないでフォトライブリやカメラを起動しようとするとアプリがストンと落ちます

フォトライブラリの画像を取得

iPadだとポップオーバーで表示するようにしています

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.photoLibrary) {

    let picker = UIImagePickerController()
    picker.modalPresentationStyle = UIModalPresentationStyle.popover
    picker.delegate = self // UINavigationControllerDelegate と UIImagePickerControllerDelegateを実装する
    picker.sourceType = UIImagePickerControllerSourceType.photoLibrary

    if let popover = picker.popoverPresentationController {
        popover.sourceView = self.view
        popover.sourceRect = loadImageButton.frame // ポップオーバーの表示元となるエリア
        popover.permittedArrowDirections = UIPopoverArrowDirection.any
    }
    self.present(picker, animated: true, completion: nil)
}

カメラで撮影した画像を取得

カメラの場合は、iPadでもフルスクリーン表示にします

if UIImagePickerController.isSourceTypeAvailable(UIImagePickerControllerSourceType.camera) {

    let picker = UIImagePickerController()
    picker.modalPresentationStyle = UIModalPresentationStyle.fullScreen
    picker.delegate = self // UINavigationControllerDelegate と UIImagePickerControllerDelegateを実装する
    picker.sourceType = UIImagePickerControllerSourceType.camera

    self.present(picker, animated: true, completion: nil)
}

画像の取得完了処理

フォトライブラリから読み込んだ画像と、カメラで撮影した画像を受け取る共通のメソッド
UIImagePickerControllerDelegateで定義されているメソッドです

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

        // pickedImageが読み込まれた画像なので、あとはお好きに
    }
    picker.dismiss(animated: true, completion: nil)
}

すごく簡単ですね

関連コンテンツ
A8広告
ブログランキング
  • にほんブログ村 教育ブログ プログラミング教育へ
  • にほんブログ村 子育てブログ 子供の習い事(教室・業者)へ

  • スポンサーリンク
    Google336 記事下
    Google336 記事下

    シェアする

    • このエントリーをはてなブックマークに追加

    フォローする

    トップへ戻る