本文介绍了 3 种 部署的方法,第一个是 iPhone 移动端,第二个是 rust 封装的 mac 服务,第三个是 swift 的 mac 服务, iPhone 移动端 安装最简单,与后续的 mac 服务一样都提供 api, 网页端,rust 封装的 mac 服务比swift 的 mac 服务好安装,也更好用。
iPhone ocr OCR Server
来源于x: https://x.com/geekbb/status/1965235643644252181
OCR Server 可将您的 iPhone 转变为一台强大的本地 OCR 服务器。采用 Apple Vision Framework 技术,无需依赖云端,可以无限制使用,完全保护隐私。
- 启动应用
- 访问显示的 IP 地址
- 上传图像获取文字识别结果
- 通过 API 将服务集成到您的应用中
项目地址:
https://github.com/riddleling/iOS-OCR-Server
只需在 iPhone 上下载 OCR Server app
mac本地安装 rust 封装的 ocr 软件(网站)
这个项目更好一点,安装比较方便
项目地址:
https://github.com/riddleling/macocr
需要先安装 rust, 然后在的安装 macocr rust 软件包
Install by cargo
# Install Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Install macocr
cargo install macocr
macocr -h
web 网页端
打开 web 服务
macocr -s -a admin:password123 -p 80
然后打开 终端给出的网址
curl 使用方法:
识别图片 api
curl -u admin:peng@1234 \
-H "Accept: application/json" \
-X POST http://localhost:80/upload \
-F "file=@/Users/qy/Downloads/ocr-test.png"
file=@/Users/qy/Downloads/ocr-test.png 需要加一个 @, 为什么?
这个 @ 表示 让 curl 读取本地文件内容,并作为表单字段 file 的值上传。
你问得很关键 👌。
在 curl 里,-F(form)参数用于构造 multipart/form-data 表单,模拟浏览器文件上传。
-
如果写成:
-F "file=@/path/to/file.png"这个
@表示 让 curl 读取本地文件内容,并作为表单字段file的值上传。 -
如果没有
@,比如:-F "file=/path/to/file.png"那么上传的其实是一个 普通的字符串
/path/to/file.png,服务器会接收到文本路径,而不是文件本身。
也就是说:
@→ 上传文件内容。- 没有
@→ 上传字面值字符串。
这是 curl 的一个约定,用来区分「传文件」和「传文本」。
mac swift ocr
使用的是 apple原生的 swift 语言,需要先安装 Swift 工具链
必须安装了 Swift 本身。
- 检查 Swift 是否安装,swift --version
- 在 macOS 上:通常随 Xcode 或者 Xcode Command Line Tools 一起安装。
- SwiftPM (Swift Package Manager)
从 Swift 3 开始,Swift 自带了 swift build 命令,不需要单独安装。
你只要能在终端运行 swift --version,说明环境已经有了。
项目源地址:https://github.com/imbytecat/swift-vision-api/tree/main
https://github.com/qyzhizi/swift-ocr
本地项目: /Users/qy/src/tries/2025-09-12-imbytecat-swift-vision-api
我修改后的项目:https://github.com/qyzhizi/swift-ocr
我的修改:https://github.com/qyzhizi/swift-ocr/commit/b86edf704594fc08cff89dc61af1e519a69cb6dc
使用方法:
克隆我修改的仓库,在终端中执行
- 编译
./run.sh - 执行
cd dist/apple-vision && ./AppleVision