Swiftパッケージ · v0.1.0
KLSubjectVision
画像から正方形のサムネイルを生成します。被写体を切り抜けるときはApple Visionを使い、抽出できない場合は元画像を使った表示へ自動で切り替えます。
KLSubjectVisionは、被写体の切り抜きと正方形への配置をまとめたSwiftパッケージです。`.subject` は切り抜いた被写体全体を透明な正方形の中に収め、抽出できなかった場合は元画像を正方形いっぱいに配置します。`.room` は、場所や室内写真など、画面全体を残したい画像向けです。
できること
- Apple Visionによる前景の切り抜き
- 余白を指定できる、被写体全体を収める配置
- 場所写真とフォールバック時は正方形いっぱいに配置
- テスト用の切り抜き処理を差し替え可能
このパッケージがしないこと
このパッケージが扱うのは `CGImage` の変換だけです。UIImageまたはNSImageの読み込み、画像の向きの補正、タスクの実行管理とキャンセル、エンコード、保存先、キャッシュキー、添付ファイルの管理はアプリ側で行ってください。
SwiftPMで追加
Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLSubjectVision.git", from: "0.1.0")使い方
最小構成Swift
let output = SubjectThumbnailProcessor().process(
source,
request: .subject(pixelSize: 512, inset: 28)
)
guard let output else { return }
display(output.image, path: output.kind)SubjectThumbnailProcessor共有の可変状態を持たない同期処理です。テストでは `ForegroundExtractor` を差し替えられます。
SubjectThumbnailRequest被写体を切り抜く `.subject(pixelSize:inset:)` と、画像全体を使う `.room(pixelSize:)` を選べます。
SubjectThumbnailOutput指定したピクセル寸法の正方形 `CGImage` と、実際に使った処理経路を返します。
デモアプリ
Subject Studio
Apple Visionによる前景の切り抜き · 余白を指定できる、被写体全体を収める配置
Thumbnail Matrix
場所写真とフォールバック時は正方形いっぱいに配置 · テスト用の切り抜き処理を差し替え可能