詳解 AVFoundation Capture
- ダウンロード商品¥ 4,500
本書は、Appleが提供するAVFoundationフレームワークを活用し、カメラ関連機能を実装する方法について解説する書籍です。カメラ撮影機能のアーキテクチャと、それを構成する主要なAPIについて基本的な部分から解説し、写真撮影や動画撮影といったカメラアプリに搭載されることが多い撮影機能を実装する方法について解説しています。 また、焦点や露出の制御、ホワイトバランスの調整といったカメラの細部を制御する方法、RAWデータ、LOGデータの撮影といったプロフェッショナル向けのデータを撮影する方法についても解説しています。
本書の構成について
本書の構成は、AVFoundationのCapture APIを触ったことがない方でも、基礎から学び始めて段階的に実力をつけられるように設計されています。一方で、すでにAVFoundationの基本に触れたことがある中級者の方や、特定の課題を解決したい上級者の方にとっても、各章を独立したリファレンスとして活用できるよう工夫を凝らしています。 読者が本書を最初から順番に読み進めることで、AVFoundation を使ったカメラ撮影機能の開発に必要な知識を無理なく習得できることを目指しています。また、実際のプロジェクトにすぐに適用できる実践的な内容を中心に取り扱うため、アプリ開発の現場でも役立つ知見を得られることでしょう。
目次
第1章 AVFoundation Capture 概要 1.1 カメラ撮影機能のアーキテクチャ 1.2 AVCaptureDevice 1.3 AVCaptureInput 1.4 AVCaptureOutput 1.5 AVCaptureSession 第2章 アクセス権 2.1 アクセス権の記載 2.2 メディアデバイスへのアクセス権 2.3 写真アルバムへのアクセス権 2.4 位置情報へのアクセス権 第3章 カメラ映像プレビューの表示 3.1 キャプチャセッションの設定 3.2 キャプチャセッションの入力設定 3.3 キャプチャセッションの出力設定 3.4 プロトコルへの準拠 3.5 ビデオフレームデータの取得 3.6 ビデオフレームデータの表示 第4章写真の撮影 4.1 キャプチャセッションの設定 4.2 カメラ映像プレビューの表示設定 4.3 静止画データ撮影の開始 4.4 プロトコルへの準拠 4.5 静止画データの取得 4.6 静止画データを写真アルバムへ追加 第5章 動画の撮影 5.1 キャプチャセッションの設定 5.2 動画データ撮影の開始・終了 5.3 動画データ撮影の一時停止・再開(iOS 18.0+) 5.4 プロトコルへの準拠 5.5 動画データの取得 5.6 動画データを写真アルバムへ追加 第6章 Live Photos の撮影 6.1 Live Photos とは 6.2 キャプチャセッションの設定 6.3 Live Photos 撮影の開始 6.4 プロトコルへの準拠 6.5 撮影の開始 6.6 静止画データの取得 6.7 動画データ撮影の完了 6.8 動画データの取得 6.9 Live Photos データを写真アルバムへ追加 第7章 カメラデバイス 7.1 iPhone に搭載されているカメラの種類 7.2 カメラの初期設定 7.3 カメラの変更 7.4 条件に合致したAVCaptureDevice オブジェクトの取得 7.5 バーチャルカメラ 第8章 フォーカス 8.1 フォーカスとは 8.2 フォーカスモードの種類 8.3 フォーカスモードの変更 8.4 フォーカス変更オプション 8.5 オートフォーカス範囲の指定 8.6 カメラレンズ位置の変更 8.7 フォーカス位置の指定 8.8 カメラレンズ情報の取得 8.9 フォーカス関連情報の変化を監視 第9章 露出 9.1 露出とは 9.2 露出モードの種類 9.3 露出モードの変更 9.4 露出変更オプション 9.5 露出ターゲットオフセット 9.6 露出ターゲットバイアス 9.7 露光時間(シャッタースピード) 9.8 ISO 感度 9.9 絞り値(F 値) 9.10 露出の変更 9.11 露出を合わせる位置の指定 9.12 露出情報の取得 9.13 露出関連情報の変化を監視 第10章 ホワイトバランス 10.1 ホワイトバランスとは 10.2 ホワイトバランスモードの種類 10.3 ホワイトバランスモードの変更 10.4 ホワイトバランスゲイン 10.5 色被りの補正 10.6 色温度(temperature) と色合い(Tint) 10.7 色温度と色合いに対応するホワイトバランスゲインの取得 10.8 クロマティシティ(色度) 10.9 ホワイトバランスの変更 10.10 ホワイトバランス関連情報の変化を監視 第11章 ライト 11.1 フラッシュライト 11.2 フラッシュライト使用可能可否の確認 11.3 トーチライト(常時点灯) 11.4 トーチライト使用可能可否の確認 11.5 明るさの変更 第12章 ズーム 12.1 ズーム倍率の変更 12.2 シングルカメラを使用したズーム 12.3 バーチャルカメラを使用したズーム 第13章 静止画データの撮影オプション設定 13.1 撮影オプション設定 13.2 Exif 情報の埋め込み 13.3 ファイル形式の変更(JPEG / HEIC) 13.4 サムネイル画像データの埋め込み 13.5 撮影データの品質と配信速度の優先度変更 13.6 赤目軽減 13.7 露出ブラケット撮影 第14章 入力と出力の接続 14.1 キャプチャセッションの役割 14.2 入力ポート 14.3 入力ポートと出力との接続 14.4 接続(コネクション) 14.5 出力データのミラーリング(左右反転) 14.6 手ぶれ補正 第15章 撮影データ・カメラ映像プレビューの角度 15.1 入力と出力の接続 15.2 出力データの角度設定 15.3 出力データのデフォルト角度 15.4 出力データの角度変更(iOS 170+) 15.5 出力データの角度変更(iOS 160-) 15.6 カメラ映像プレビューの角度変更(iOS 170+) 15.7 カメラ映像プレビューの角度変更(iOS 160-) 15.8 端末の角度に最適な角度設定(iOS 170+) 15.9 端末の向きに最適な角度設定(iOS 160-) 第16章 メタデータの検出 16.1 キャプチャセッションの設定 16.2 プロトコルへの準拠 16.3 検出したメタデータの取得 16.4 メタデータ情報の解析 16.5 検出することができるメタデータの種類 16.6 検出したメタデータの判別 第17章 フォーマット 17.1 撮影フォーマット 17.2 撮影フォーマット情報 17.3 撮影フォーマットの変更 17.4 フレームレートの変更 17.5 対応フレームレートの確認 17.6 スローモーション動画撮影の設定 第18章 動画の撮影(応用) 18.1 AVAssetWriter とは 18.2 キャプチャセッションの設定 18.3 プロトコルへの準拠 18.4 メディアデータの取得 18.5 動画データの出力 18.6 動画データの保存 第19章 複数のカメラを使用した撮影 19.1 AVCaptureSession 19.2 AVCaptureSession の制約 19.3 AVCaptureSession に制約が存在する理由 19.4 AVCaptureMultiCamSession 19.5 AVCaptureMultiCamSession の設定 19.6 キャプチャセッションの入力設定 19.7 キャプチャセッションの出力設定 19.8 入力と出力の接続 19.9 カメラ映像のプレビュー表示設定 19.10 別のカメラを追加 19.11 動画データ撮影の開始・終了 19.12 動画データの取得 19.13 動画データを写真アルバムへ追加 19.14 ハードウェアコスト 19.15 システム負荷 第20章 RAW データの撮影 20.1 キャプチャセッションの設定 20.2 撮影オプション設定 20.3 静止画データ・RAWデータ撮影の開始 20.4 プロトコルへの準拠 20.5 RAWデータ・静止画データの取得 20.6 「RAW + L」データを写真アルバムへ追加 20.7 「RAW」データを写真アルバムへ追加 20.8 Apple ProRAWの撮影 第21章 LOG データの撮影 21.1 キャプチャセッションの設定 21.2 撮影フォーマットの設定 21.3 LOG データ撮影の開始・終了 21.4 LOG データを写真アルバムへ追加 第22章 撮影状況の追跡 22.1 静止画データ・Live Photos データ撮影 22.2 静止画データ撮影状況の追跡 22.3 Live Photos データ撮影状況の追跡 22.4 動画データ撮影状況の追跡 22.5 ビデオフレームデータ取得状況の追跡 第23章 サムネイルデータとプレビューデータ 23.1 サムネイルデータの設定 23.2 プレビューデータの設定 23.3 プレビューデータの取得 付録A Tips A.1 iPhone に搭載されているカメラデバイスの種類とスペック A.2 静止画データの表示方向
製品仕様
・A5版 ・424ページ
改訂履歴
2025/04/13 v1.0: 初回リリース
動作環境
• iOS 18.0 • Swift 5.0 • Xcode 16.0
その他
⚫︎Zenn https://zenn.dev/naoya_maeda ⚫︎Apps https://apps.apple.com/jp/developer/naoya-maeda/id1028791880 ⚫︎X https://x.com/Naoya_Maeda_app