Swiftパッケージ · v0.1.0

KLAdaptiveSurface

画像から得た色を、画面に置く前に読みやすい表面色へ整えます。

KLAdaptiveSurfaceは同期的な色のポリシーです。元の色相をできるだけ残し、暗すぎる色や鮮やかすぎる色だけを読みやすい範囲へ整え、結果に合う前景色を返します。

対応OS
iOS 17+ · macOS 14+
開発環境
Swift 6.0+
ライセンス
MIT
外部依存
なし

できること

  • 明るさと彩度の範囲を設定可能
  • 濁りの閾値で、すでにきれいな色を変更しない
  • 色相を保つ、中立、寒色、暖色の好み
  • 自動、暗色、明色の前景色方針

このパッケージがしないこと

このパッケージは一つの `CGColor` を整えます。画像の読み込み、ピクセルのサンプリング、再計算のタイミング、キャッシュ、SwiftUIやUIKitへの適用は利用側が担当します。

SwiftPMで追加

Package.swiftSwift
.package(url: "https://github.com/KoenLee1023/KLAdaptiveSurface.git", from: "0.1.0")

使い方

最小構成Swift
let surface = KLAdaptiveSurface.normalize(
    sampledColor,
    using: .reading
)
apply(surface.background, foreground: surface.foreground)
KLAdaptiveSurface.normalize(_:using:)

値型の設定に従って一つの `CGColor` を整えます。

KLAdaptiveSurface.Configuration

閾値、整える強さ、色の好み、前景色の方針を定義します。

KLAdaptiveSurface.Result

背景色、前景色、コントラストの向き、整形状態を返します。

デモアプリ

Reading Surface Demo

明るさと彩度の範囲を設定可能 · 濁りの閾値で、すでにきれいな色を変更しない

Widget Surface Demo

色相を保つ、中立、寒色、暖色の好み · 自動、暗色、明色の前景色方針