https://github.com/vorojar/iphone-exif-injector
Inject full iPhone EXIF (Make, Model, lens, ISO, GPS, timestamp) into any photo + swap JPEG quantization tables with real iPhone DQT. macOS right-click service. 一键把图片伪装为 iPhone 拍摄的照片
https://github.com/vorojar/iphone-exif-injector
exif exif-injector exif-metadata image-metadata iphone iphone-photo jpeg macos metadata rust
Last synced: 5 days ago
JSON representation
Inject full iPhone EXIF (Make, Model, lens, ISO, GPS, timestamp) into any photo + swap JPEG quantization tables with real iPhone DQT. macOS right-click service. 一键把图片伪装为 iPhone 拍摄的照片
- Host: GitHub
- URL: https://github.com/vorojar/iphone-exif-injector
- Owner: vorojar
- Created: 2026-04-27T09:03:02.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-28T02:05:09.000Z (2 months ago)
- Last Synced: 2026-06-14T07:05:08.332Z (24 days ago)
- Topics: exif, exif-injector, exif-metadata, image-metadata, iphone, iphone-photo, jpeg, macos, metadata, rust
- Language: Rust
- Size: 672 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# 真实照片生成器
把 AI 生成的图片(或任何"干净元数据"的图片)处理成像 iPhone 真实拍摄的照片——绕过小红书/抖音/视频号等平台的 AI 图检测。
**使用方式:在 Finder 中右键任意图片 → 服务 → 处理为 iPhone 照片**。没有拖拽窗口,没有操作界面——所有工作都在右键菜单里完成,右上角系统通知提示结果。
## 它做什么
**只做"加信息",不动你的像素**——保留原图尺寸、保留原图色彩,绝不裁切/缩放/加噪声/偏色温。
出来的照片在视觉上和你的输入**完全一样**,只是文件元数据"伪装成 iPhone 拍的"。
- **JPEG 重编码**:用 quality=95 重编码(即使输入已经是 JPEG),让所有输出走同一条编码路径
- **量化表替换**:把 libjpeg 的 DQT 替换为真实 iPhone 12 Pro 的 DQT
- **EXIF 注入**:完整 iPhone 相机参数 47 项 + 可选 GPS 10 项
- Make / Model / Software / LensMake / LensModel
- 光圈 / 快门 / ISO / 焦距 / 35mm 等效
- DateTimeOriginal(随机近 10 天内)+ 亚秒 + 时区 `+08:00`
- ColorSpace=sRGB / Orientation=1 / ExposureMode / WhiteBalance
- LensInfo / ApertureValue / ShutterSpeedValue(APEX)
- ExifImageWidth/Height **跟随原图真实尺寸**(不会和实际像素对不上)
- **文件时间**:同步把文件的 mtime 改成"拍摄时间"(Finder 显示)
> ⚠️ 这是"温和模式"权衡:不动像素意味着对纯像素层的 AI 指纹检测保护更弱。
> 如果平台检测主要看 EXIF + JPEG 编码特征,这套方案足够;
> 如果平台还会跑 StyleGAN/Diffusion 的频域指纹模型,可能仍会触发。
## 支持的机型预设
| ID | 机型 | 主摄焦距 | 光圈 |
|---|---|---|---|
| `iphone15pro` | iPhone 15 Pro | 6.765mm (24mm 等效) | f/1.78 |
| `iphone15` | iPhone 15 | 5.96mm (26mm) | f/1.6 |
| `iphone14pro` | iPhone 14 Pro | 6.86mm (24mm) | f/1.78 |
| `iphone14` | iPhone 14 | 5.7mm (26mm) | f/1.5 |
| `iphone13` | iPhone 13 | 5.1mm (26mm) | f/1.6 |
## 安装 & 运行
### 方式一:开发模式
```bash
cargo run --release
```
### 方式二:打包成 .app(推荐)
```bash
./bundle.sh
```
把 `target/真实照片生成器.app` 拖到 `/Applications/` —— **双击运行一次**,App 会自动向 LaunchServices 注册并刷新 pbs 缓存,之后右键菜单里就有"处理为 iPhone 照片"。
两种用法:
1. **右键菜单**(推荐):在 Finder 右键任意图片 → **服务 →** **处理为 iPhone 照片** → 右上角系统通知提示完成,输出保存在原目录
2. **GUI 窗口**(批处理、调参):双击 `/Applications/真实照片生成器.app`,拖图、选机型、开关 GPS / 噪声
### 方式三:做成 .dmg 分发
```bash
./bundle.sh && ./dmg.sh
```
## 如果右键菜单没出现
优先级从易到难:
- 双击一次 `/Applications/真实照片生成器.app`(触发自注册)
- 跑 `./install.sh` 强制刷新
- 打开 **系统设置 → 键盘 → 键盘快捷键 → 服务 → 文件和文件夹**,勾选 **处理为 iPhone 照片**(macOS 有时会默认关闭新注册的服务)
- 在同一页给这个服务绑一个全局快捷键(比如 ⌘⇧P),选中图片直接按快捷键触发,**比右键菜单还快**
- 重新登录一次系统让 Services 缓存完全生效
### 命令行用法(无 GUI)
```bash
cargo run --release --example cli -- /path/to/image.png iphone15pro
```
## 技术栈
- **GUI**:wry (WebView) + tao(窗口)—— 二进制 ~8MB,无需 Node/Electron
- **图像处理**:`image` crate
- **EXIF 写入**:`little_exif`(纯 Rust)
## 注意
- 只做元数据伪装+轻度像素扰动,**不能保证**绕过所有 AI 检测算法
- 平台算法在持续升级,视觉层的 AI 指纹检测可能仍会触发
- 自用工具,请合规使用