Swift套件 · v0.1.0

KLSubjectVision

從CGImage產生正方形主體或場景縮圖。

KLSubjectVision用來產生正方形縮圖。`.subject` 透過Apple Vision擷取前景,再將完整主體依比例放入透明畫布。擷取失敗時改用原圖。`.room` 不擷取主體,直接裁切場景圖片。

支援平台
iOS 17+ · macOS 14+
開發工具
Swift 6.0+
授權條款
MIT
第三方相依套件

功能

  • Vision前景實例遮罩
  • 可設定inset的主體等比例縮放
  • `.room` 與 `.fallback` 使用置中填滿
  • 測試時可以替換 `ForegroundExtractor`

不包含的功能

套件只處理 `CGImage`。圖片載入、方向校正、工作排程、取消、編碼、儲存與快取由整合端App負責。

透過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` 與處理路徑。

範例App

Subject Studio

Vision前景實例遮罩 · 可設定inset的主體等比例縮放

Thumbnail Matrix

`.room` 與 `.fallback` 使用置中填滿 · 測試時可以替換 `ForegroundExtractor`