Swift패키지 · v0.1.0

KLSubjectVision

CGImage에서 정사각형 피사체 또는 장면 썸네일을 만듭니다.

KLSubjectVision은 피사체 분리와 정사각형 배치를 하나로 묶은Swift패키지입니다. `.subject`는 분리한 피사체 전체가 투명한 정사각형 안에 보이도록 배치하고, 분리에 실패하면 원본 이미지로 정사각형을 채웁니다. `.room`은 장소나 실내 사진처럼 장면 전체를 유지해야 하는 이미지에 사용합니다.

지원OS
iOS 17+ · macOS 14+
개발 환경
Swift 6.0+
라이선스
MIT
외부 의존성
없음

기능

  • 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

장소 사진과 대체 처리에서는 정사각형을 가득 채워 배치 · 테스트용 전경 분리기 교체 가능