Photochk 1.0.0 — 類似写真を探して整理する macOS アプリ

フォルダ内の写真から、中身が同じものと見た目が似ているものを検出して
グループにまとめ、残す1枚を選んでほかをゴミ箱へ送れるようにする。

検出は安い判定から順に4段:
- ファイルサイズが同じものだけ SHA-256 でバイト一致を確定
- dHash(知覚ハッシュ)のハミング距離で候補ペアを抽出
- 候補に出てくる画像だけ Vision の feature print で精査
- Union-Find で連結成分をグループ化

判定のしきい値は実写画像で距離を実測して決めた(docs/calibration.md)。
tools/release-update.sh で Gitea のリリースを更新する。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
yfoxjp
2026-07-28 08:02:14 +09:00
co-authored by Claude Opus 5
commit c7f68b6cca
38 changed files with 3102 additions and 0 deletions
+61
View File
@@ -0,0 +1,61 @@
name: Photochk
options:
bundleIdPrefix: com.fujisaki
deploymentTarget:
macOS: "15.0"
createIntermediateGroups: true
settings:
base:
SWIFT_VERSION: "6.0"
SWIFT_STRICT_CONCURRENCY: complete
MARKETING_VERSION: "1.0"
CURRENT_PROJECT_VERSION: "1"
CODE_SIGN_STYLE: Manual
CODE_SIGN_IDENTITY: "-"
DEVELOPMENT_TEAM: ""
ENABLE_HARDENED_RUNTIME: NO
targets:
Photochk:
type: application
platform: macOS
sources:
- path: Sources/Photochk
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.fujisaki.Photochk
PRODUCT_NAME: Photochk
INFOPLIST_FILE: Sources/Photochk/Info.plist
CODE_SIGN_ENTITLEMENTS: Sources/Photochk/Photochk.entitlements
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
COMBINE_HIDPI_IMAGES: YES
configs:
Release:
# デバッガ接続を許す get-task-allow が Release に混ざらないようにする
CODE_SIGN_INJECT_BASE_ENTITLEMENTS: NO
PhotochkTests:
type: bundle.unit-test
platform: macOS
sources:
- path: Tests/PhotochkTests
dependencies:
- target: Photochk
settings:
base:
PRODUCT_BUNDLE_IDENTIFIER: com.fujisaki.PhotochkTests
GENERATE_INFOPLIST_FILE: YES
schemes:
Photochk:
build:
targets:
Photochk: all
run:
config: Debug
test:
config: Debug
targets:
- PhotochkTests