カテゴリ: Swift 更新日: 2025/12/28

Swiftでカメラと写真ライブラリを使う方法!UIImagePickerController入門

Swift カメラ・写真ライブラリの使い方|UIImagePickerController入門
Swift カメラ・写真ライブラリの使い方|UIImagePickerController入門

先生と生徒の会話形式で理解しよう

生徒

「先生、iPhoneアプリでカメラを使ったり、アルバムから写真を選んだりする機能を作れますか?」

先生

「はい、SwiftではUIImagePickerControllerという仕組みを使えば簡単に実装できます。これはカメラや写真ライブラリを扱うための便利なクラスです。」

生徒

「難しい設定とかが必要なんですか?」

先生

「基本的な使い方を覚えれば大丈夫です。順番に解説していきましょう!」

1. UIImagePickerControllerとは?

1. UIImagePickerControllerとは?
1. UIImagePickerControllerとは?

UIImagePickerControllerは、iOSに標準で用意されている写真や動画を扱うための仕組みです。これを使うと、アプリの中でカメラを起動したり、ユーザーの写真ライブラリから画像を選んでもらうことができます。

例えば、プロフィール画像を登録するアプリや、写真編集アプリ、日記アプリなど、さまざまな場面で利用されています。

2. カメラと写真ライブラリの違い

2. カメラと写真ライブラリの違い
2. カメラと写真ライブラリの違い

カメラと写真ライブラリは役割が違います。カメラは「今から撮影する」ために使う機能で、写真ライブラリは「すでに保存されている写真や動画」を取り出すために使います。

  • カメラ:ユーザーがその場で写真や動画を撮影してアプリに取り込む。
  • 写真ライブラリ:iPhoneに保存されている既存の写真や動画を選ぶ。

この二つを選択肢として出せるので、アプリの用途に合わせて柔軟に使い分けられます。

3. 基本的なコード例

3. 基本的なコード例
3. 基本的なコード例

ここでは、ボタンを押したときに写真ライブラリを開いて、選んだ写真を表示する簡単な例を見てみましょう。


import UIKit

class ViewController: UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate {

    @IBOutlet weak var imageView: UIImageView!

    // 写真ライブラリを開く処理
    @IBAction func selectPhoto(_ sender: Any) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = .photoLibrary
        present(picker, animated: true, completion: nil)
    }

    // 写真を選んだときの処理
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
        if let image = info[.originalImage] as? UIImage {
            imageView.image = image
        }
        dismiss(animated: true, completion: nil)
    }
}

このコードを使うと、ボタンを押すと写真ライブラリが開き、選んだ写真がUIImageViewに表示されます。

4. カメラを使う場合のコード

4. カメラを使う場合のコード
4. カメラを使う場合のコード

写真ライブラリではなくカメラを使うときは、sourceType.cameraに変更します。ただし、シミュレーター(Mac上で動かすテスト環境)ではカメラは使えないので、実機(iPhoneやiPad)で試してください。


@IBAction func takePhoto(_ sender: Any) {
    if UIImagePickerController.isSourceTypeAvailable(.camera) {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.sourceType = .camera
        present(picker, animated: true, completion: nil)
    }
}

このコードで、ボタンを押すとカメラが起動し、その場で撮った写真をアプリに取り込めます。

5. 権限設定が必要

5. 権限設定が必要
5. 権限設定が必要

カメラや写真ライブラリを使うには、ユーザーからの権限(パーミッション)が必要です。権限とは「このアプリがカメラを使っていいですか?」と確認することです。これをしないとアプリはクラッシュしてしまいます。

権限を設定するには、XcodeのInfo.plistに以下を追加します。


<key>NSCameraUsageDescription</key>
<string>カメラを使います</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>写真ライブラリにアクセスします</string>

この設定をしておくと、アプリを起動したときに「このアプリがカメラを使おうとしています」といった確認ダイアログが表示されます。

6. 写真編集や動画の扱い

6. 写真編集や動画の扱い
6. 写真編集や動画の扱い

UIImagePickerControllerは写真だけでなく動画の撮影や選択にも対応しています。また、編集を有効にすると写真を切り抜いたりトリミングしたりすることも可能です。

  • 動画の撮影:mediaTypeskUTTypeMovieを指定。
  • 編集機能:allowsEditing = trueを設定。

これにより、アプリの目的に合わせて柔軟に機能を追加できます。

7. UIImagePickerControllerの使いどころ

7. UIImagePickerControllerの使いどころ
7. UIImagePickerControllerの使いどころ

この仕組みはさまざまなアプリで利用されています。例えば:

  • プロフィール画像を登録するSNSアプリ。
  • 日常を記録する日記アプリ。
  • 撮影した写真を加工するカメラアプリ。

初心者の方でも基本を押さえれば、自分のアプリに「写真を扱う機能」を簡単に追加できるようになります。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のオブジェクト指向の特徴を完全ガイド!初心者でも理解できる他言語との違い
New2
Go言語
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
New3
Kotlin
Kotlinのクラス設計に役立つベストプラクティスまとめ|初心者でもわかるクラス設計の考え方
New4
Kotlin
Kotlinでアーキテクチャ設計の基本!MVC・MVP・MVVMの違いを解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.3
Java&Spring記事人気No3
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.7
Java&Spring記事人気No7
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.8
Java&Spring記事人気No8
Swift
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎