iOS 26 及以上 · 零第三方依赖

先选相册, 照片自己归位。

SnapIn 是一台拍照前就先指定目标相册的极速相机:按下快门的那一刻,照片已经进入它该在的地方。再配上一行 Retro Amber 数码管日期水印。

无账号 · 无追踪 · 全部在本机处理

iOS 26.0 及以上 Swift 6 · SwiftUI 零第三方依赖 全部在本机处理
目标相册:旅行 Retro Amber 日期水印 快门永不失效
三步

把「整理照片」提前到拍照之前

大多数相机的顺序是「先拍一堆,回头再翻」。SnapIn 把顺序倒过来:目的地定在快门之前,整理这件事就自然消失了。

先选相册

顶部平铺常用相册,一键切换;也能打开完整列表慢慢挑。点当前项就是取消选择 —— 不会被锁死在某个相册里。

再按快门

快门永远可点。相机还没准备好时,应用会告诉你具体原因并自动重新准备,而不是让按钮变成按不动的灰色。

自动归位

保存目标在快门瞬间就固化进这一张照片的任务里。照片直接落进指定相册,不用事后在几千张图里翻找。

功能

为「拍完就能用」做的六个决定

这些不是功能清单上的勾,而是取舍的结果。每一条都对应一个具体的麻烦。

目标在快门瞬间固化

创建照片与加入相册在同一个 PhotoKit 事务里完成。中途换相册、退出应用、甚至相册被改名,都不会让照片进错地方。

PhotoKit1 transaction

关掉水印,就是零重编码

4:3 画幅且不开水印时,原始图像数据零重编码直接入库 —— 不重新压缩,不损失任何一个像素。

4:3ImageIO

Retro Amber 日期水印

自绘七段数码管字形,4 种字体、6 种复古色、4 个落点、0.8x~1.6x 大小与字间距。不引入任何第三方字体,也就没有字体授权问题。

4 fonts6 colours0.8x–1.6x

裁切发生在渲染之前

1:1 / 16:9 不是把取景框裁掉:先对原始照片做中心裁切,再渲染水印。所以取景预览与最终导出完全一致。

1:14:316:9

滑动变焦走的是真实镜头

档位圆钮由设备真实能力推导(0.5x / 1x / 3x …),不是写死的数字。手感按对数刻度统一,水平与竖直滑动每 pt 变化完全一致。

AVFoundation0.5x · 1x · 3x

设置记得住,照片丢不了

闪光灯、画幅、水印配置与目标相册都会记住。保存或渲染失败的任务会持久化到本机,可以重试 —— 绝不静默丢照片。

UserDefaultsretry queue
水印实验室

把日期水印调成你要的样子

下面每一个开关都真实存在于应用里。预览里的数字不是图片,而是用与真机同一套七段几何实时绘制出来的 —— 你在这里看到什么,导出就是什么。

把位置设为「自定义」后,可以直接在预览里拖动水印。 SevenSegmentStyle(widthRatio: 0.56, thicknessRatio: 0.115, spacingRatio: 0.16, rounded: false)
日期格式 '26 09 11
字体
颜色
尺寸 1.00x
字间距 1.00x
位置
预览放大

预览按真实比例渲染:水印高度 = 短边 × 2.2% × 尺寸倍率,右边距 4.5%,下边距 4%。真机照片为 12MP(4032 × 3024),水印的像素高度约为这里的 5 倍。

画幅

1:1 / 4:3 / 16:9,先裁切再渲染

三种画幅共用同一条短边基准,所以切换画幅时取景区高度不变、下方操作区不会位移。下面三张图是同一张原片的真实中心裁切结果。

1:1

正方形。中心裁切后渲染水印。

中心裁切

4:3

默认画幅。铺满取景区;关掉水印时零重编码直存。

默认

16:9

宽幅。中心裁切,适合风景与视频素材。

中心裁切
隐私

你的照片,不出这台手机。

SnapIn 没有任何服务器。它调用的是 Apple 自己的框架:AVFoundation 取景、PhotoKit 存取相册、CoreGraphics 合成水印 —— 除此之外没有任何第三方代码。

读完整隐私政策

  • 无账号,无登录打开就能用,不索取邮箱、手机号或任何身份信息。
  • 无追踪,无广告 SDK没有埋点、没有分析 SDK、没有广告标识符。
  • 照片只在本机处理裁切与水印合成都发生在设备上,照片写进你自己的照片图库。
  • 卸载即清空本机只存开关偏好与上次用的相册 ID,删掉应用即随之消失。
规格

技术规格

想要细节的话,这里都是可以核对的:应用不依赖任何第三方库,所有渲染代码都在项目里。

系统要求iOS 26.0 及以上
开发工具Xcode 26 及以上
开发语言Swift 6
界面框架SwiftUI
相机AVFoundation
照片库PhotoKit
第三方依赖
画幅1:1 · 4:3 · 16:9
水印字体4 种(自绘七段数码管)
水印颜色6 种复古色
水印位置右下 / 左侧 / 底部居中 / 自定义
深链snapin://camera?album=<id>
常见问题

你可能想知道

为什么最低要求 iOS 26?

SnapIn 使用了 iOS 26 的相机延迟启动能力:相册列表与相机会话并行准备,所以打开应用到能拍照的时间更短。把最低版本压到更早的系统,就必须放弃这部分启动速度。

没选相册可以拍照吗?

可以。未选择目标时,照片只保存到系统照片图库 —— 这与把目标设为「照片图库」是同一件事。快门不会因为「没选相册」而被挡住。

开日期水印会掉画质吗?

4:3 画幅且关闭水印时,原始图像数据零重编码直接写入照片图库,不损失任何像素。开启水印或使用 1:1 / 16:9 时,需要一次合成与中心裁切,但整个管线只有一趟:解码、裁切、画水印一次完成,中间不会多产出一张全分辨率位图。

照片到底存到哪个相册了?

存进你在顶部选定的那个相册。如果按快门时没有选定目标,就存进照片图库。注意系统「最近项目」不一定立刻反映相册归属,直接打开目标相册查看更准确。

为什么我的变焦里没有 0.5x?

档位圆钮由设备真实的镜头推导,而不是写死的。没有超广角镜头的机型不会出现 0.5x;变焦上限按「最长物理镜头 × 5」封顶,与系统相机一致。

拍摄失败会丢照片吗?

不会。保存或渲染失败时,这个任务会连同它的目标相册与水印配置一起持久化到本机,之后可以重试。SnapIn 不会静默丢掉任何一张照片。

我的数据会被上传吗?

不会。SnapIn 没有服务器,也没有第三方 SDK。唯一的例外是通过 TestFlight 参与内测时,Apple 会按其自身政策收集崩溃日志等诊断信息并分享给开发者 —— 这由 Apple 控制,与应用内代码无关。

还有别的问题?看看完整的支持页面

SnapIn 应用图标

先把相册选好

SnapIn 目前处于内测阶段。留下邮箱,上架或开放内测时第一时间通知你。

内测名额即将开放