/SpatialPhoto-Sampler

Sample app of split the spatial photo

Primary LanguageSwiftOtherNOASSERTION

SpatialPhoto-Sampler

SpatialPhoto-Sampler は、iOS デバイス上でステレオペア画像から空間写真を生成・表示するための SwiftUI アプリケーションです。Vision Pro などの空間コンピューティングデバイスで立体視可能な HEIC 形式の空間写真を作成できます。

機能

空間写真の分割表示

  • 空間写真(HEIC ファイル)を左右の画像に分割して表示
  • 複数の表示モード:
    • サイドバイサイド(水平)
    • サイドバイサイド(垂直)
    • オーバーレイ
    • スライド(モーションセンサー対応)

空間写真の生成

  • 左右の画像から空間写真を生成
  • 単一画像の自動分割機能
  • 写真ライブラリへの保存

技術仕様

開発環境

  • プラットフォーム: iOS
  • 言語: Swift
  • フレームワーク: SwiftUI
  • 最小対応バージョン: iOS 18.0(空間メディア機能)

主要コンポーネント

SpatialPhotoConverter

空間写真の生成を担当するコアクラス。左右の画像と空間メタデータから HEIC 形式の空間写真を作成します。

主要機能:

  • ステレオペア画像の処理
  • 空間メタデータの埋め込み
  • HEIC 形式での出力

GenerateSplitView

空間写真生成用のユーザーインターフェース。

機能:

  • 写真ピッカーによる画像選択
  • 画像の自動分割
  • 空間写真の生成と保存

SplitSpatialPhotoView

空間写真の表示・比較用のユーザーインターフェース。

機能:

  • 空間写真の読み込み
  • 左右画像の分離
  • 複数の表示モード
  • モーションセンサーによる視差調整

技術的特徴

空間写真フォーマット

  • フォーマット: HEIC
  • メタデータ: CGImagePropertyGroups を使用した空間メタデータ
  • 立体視: ステレオペア画像による視差情報

使用方法

空間写真の表示

  1. "Split" タブを選択
  2. "Pick Spatial Image" で空間写真を選択
  3. ツールバーのアイコンで表示モードを切り替え

空間写真の生成

  1. "Generate" タブを選択
  2. 左右の画像を個別に選択、または単一画像を選択
  3. "空間写真を生成する" をタップ

アーキテクチャ

SpatialPhoto/
├── SpatialPhotoApp.swift          # アプリエントリーポイント
├── Views/
│   ├── Generate/
│   │   └── GenerateSplitView.swift # 空間写真生成UI
│   └── Split/
│       └── SplitSpatialPhotoView.swift # 空間写真表示UI
└── Helpers/
    ├── SpatialPhotoConverter.swift # 空間写真変換エンジン
    ├── Data+Spatial.swift         # 空間写真データ拡張
    ├── Data+ImageFormat.swift     # 画像フォーマット拡張
    ├── Data+Temp.swift           # 一時ファイル処理
    └── MotionManager.swift       # モーションセンサー管理

必要な権限

  • 写真ライブラリアクセス: 空間写真の読み込み・保存
  • モーションセンサー: デバイス傾きによる視差調整

ライセンス

このプロジェクトは MIT ライセンスの下で公開されています。詳細は LICENSE.md をご覧ください。

貢献

バグ報告や機能改善の提案は、GitHub Issues でお知らせください。

開発者

Created by fromkk