你打开 图片去背景工具 拖入一张证件照,3 秒后拿到透明 PNG。整个过程你的照片去了哪里?
答案是:哪也没去。
听起来像营销话术,但这次是真的。本文讲清楚:
- Piick 为什么坚持 100% 客户端处理
- 怎么做到的(技术层面,不卖关子)
- 4 个核心原则、3 道技术防线
- 什么时候”本地处理”反而是劣势
为什么这事重要
先说个具体场景。
你是个跨境电商运营,公司要做亚马逊美国站,需要 1000 张产品图,白底、800×800、JPG、小于 500KB。你选了一个在线工具,注册、上传、下载——图片去了这些地方:
- 工具的 CDN(可能在新加坡、可能在弗吉尼亚)
- 工具的 GPU 服务器(处理图片)
- 工具的对象存储(缓存结果)
- 工具的备份系统(异地容灾)
你的产品图(包括未发布的、新款设计)被复制了至少 3-5 份,存在你无法控制的位置。这张图可能是你公司未来 6 个月的核心卖点之一。
或者更私人的场景:你给孩子拍周岁照,要修一下背景。孩子的照片、你的家庭住址(背景)、家庭日常——这跟信用卡账单一样敏感。
这不是”工具可不可信”的问题,是”数据传输路径上任何一环都可能泄露”的问题。
Piick 的解法是:彻底消除”传输”这个环节。算法在浏览器里跑,图片不离开你的设备。
Piick 的 4 个核心原则
原则 1:零上传(Zero Upload)
所有图片处理工具 —— 图片压缩、图片格式转换、图片裁剪、图片去背景、批量 OCR、颜色提取—— 都在浏览器端用 JavaScript + Canvas API 处理图片。
网络请求只发生在加载页面的时候(HTML / CSS / JS 静态资源)。一旦页面加载完,你拖入图片,整个处理流程没有第二次网络请求。
怎么验证?打开浏览器的 DevTools → Network 面板,把所有请求类型设为”全部”,然后跑一次完整流程。你应该看到的请求:
- 页面本身的 HTML
- 静态 CSS / JS 文件
- 字体(如果有)
- 零个 POST / PUT 请求到任何 API endpoint
原则 2:零账户(Zero Account)
没有”登录后才能下载结果”的限制。没有”注册后免费 5 张,付费用更多”的限制。打开就用,用完就走,浏览器关闭后除了你自己没任何痕迹。
技术上对应的:Piick 不存任何用户数据(因为没有用户数据可存)。没有 user_id、没有 device_fingerprint、没有 cookie 追踪。
原则 3:零成本 ≠ 低质量(Monetization without Surveillance)
Piick 通过页面广告变现(Google AdSense)。用户数据 不会 被卖给广告商 —— 因为根本没有数据可卖。
这跟主流 SaaS 工具(remove.bg、Adobe Express、Canva 等)的模式完全不同。他们的免费版 + Pro 版体系里,免费用户的图片就是数据:被分析、被用来训练模型、被卖给广告商。订阅费覆盖 Pro 版成本,但免费版靠的是数据。
Piick 的选择是:只有广告这一个变现渠道,而且广告商拿不到你的内容数据。
原则 4:可审计(Open Audit Trail)
所有工具的处理代码都打包在 JavaScript 文件里,任何人都可以用 DevTools 看。算法逻辑是公开的、可审查的、不可篡改的(因为代码在浏览器跑,不是服务器跑)。
跟某些”声称本地处理但偷偷上传”的工具不同,Piick 的代码是 GitHub 开源的(即将开源),任何开发者都可以审计实现。
3 道技术防线
防线 1:Canvas API + OffscreenCanvas
Piick 的所有图片处理使用浏览器的 Canvas API(以及 OffscreenCanvas,Web Worker 场景下)。Canvas API 在浏览器内核里实现,完全在客户端跑。
具体到 图片去背景 这个工具:
- 你拖入图片 → 浏览器用
createImageBitmap()解码为 RGBA 像素 - JavaScript 在这些像素上跑 BFS flood-fill 算法,生成 alpha 遮罩
- Canvas 把处理后的像素绘制出来
canvas.toBlob()编码为 PNG/JPG 二进制- 浏览器把 Blob 作为下载触发
没有任何一步会发起 HTTP 请求到 Piick 服务器或任何第三方服务器。
防线 2:Web Workers(批量场景)
对于 批量 OCR 这种重 CPU 任务,Piick 用 Web Workers 把算法放到后台线程。这有几个好处:
- 不阻塞 UI(进度条可以流畅更新)
- 不增加内存峰值(Worker 有独立的内存空间)
- 依然纯客户端 —— Worker 只是浏览器内的多线程,不涉及网络
OCR 用的是 Tesseract.js 库,这个库的模型文件(英文 + 简体中文字模)需要在第一次使用时下载。但这跟”上传你的图片”是两回事:
- 模型文件从 Piick 的 CDN 下载(公共资源,不带用户数据)
- 你的图片 OCR 后,文字结果留在浏览器,从未离开
防线 3:零服务端持久化(Server-side Stateless)
Piick 的服务端(如果你叫它服务的话)只做一件事:返回静态文件。
技术上 piick.cc 是一个纯静态 Astro 网站,部署在 CDN 上(Cloudflare 或者 Vercel)。CDN 不跑任何应用代码 —— 没有数据库、没有文件系统、没有用户表。Piick 服务器在技术层面无法存储你的图片,即使它想存。
这跟”信任我们不会保存”是不同的保证。“我们保存不了”是更强的保证。
什么时候”本地处理”反而是劣势
诚实说一下:不是所有场景下 100% 本地都是最优解。
场景 1:复杂 AI 模型任务(发丝抠图、语义分割)
Piick 的 corner-sample + flood-fill 算法对纯色背景很擅长(80% 用户场景),但对头发丝、半透明、复杂渐变无能为力。这类场景需要云端 AI 模型(类似 remove.bg 的 U²-Net),模型本身几 MB 到几十 MB。
云端方案的取舍:
- ✅ 复杂场景下精度高(发丝级别)
- ❌ 图片必须上传到服务器
- ❌ 通常是付费服务(几美分到几毛钱一张)
Piick v1 选择本地算法(简单场景 + 零成本 + 隐私)。v2 会考虑加一个”高质量模式”开关,后台下载 AI 模型,模型和图片都不离开浏览器(类似 @imgly/background-removal 这个库),但模型下载本身是一次性的大文件。
场景 2:超大批量(几千张图并行处理)
本地处理受限于你的设备性能:
- CPU:浏览器跑 BFS 在手机上是 200ms / 张,在桌面是 50ms / 张
- 内存:每张 4K 图解码后约 33MB,1000 张同时加载会爆内存
- 磁盘:你的 SSD 要够大,因为批量下载 ZIP 也是磁盘 IO
云端方案用 GPU 服务器并行,几秒完成几千张。
Piick 的批量去背景目前是顺序处理(一次一张),适合 5-50 张的小批量。1000+ 张的场景,你需要商业工具。
场景 3:协作 / 跨设备
如果你的工作流是”在家用 Mac 处理一部分,在公司用 Windows 继续”,本地处理没有云同步,需要手动传文件。
云端方案天然支持协作(共享文件夹、版本历史、跨设备同步)。
场景 4:合规性要求
某些行业(医疗、金融、政府)有强制性的”数据处理日志”要求,需要服务器记录每一次处理的对象、时间、操作者。本地处理没有这个日志。
Piick 不针对这些场景。如果你做的是医疗影像,绕开 Piick,直接上专业 DICOM 工具。
怎么验证 Piick 真的没上传
最直接的验证方法 —— DevTools Network 面板。具体步骤:
- 打开 piick.cc/tools/background-remover
- 浏览器按 F12 打开 DevTools
- 切到 Network 面板
- 清空记录(🚫 图标)
- 勾选 Preserve log(保留记录,防止页面重载时清空)
- 过滤框输入
piick.cc或留空 - 拖入图片,完整跑一遍去背景
- 观察请求列表:除了页面加载时的 HTML/CSS/JS,处理过程中没有任何 POST/PUT 请求
如果发现任何可疑请求(域名不是 piick.cc、方法是 POST/PUT、Payload 不是空的),截图发给我们 —— 这是 bug。
更深度的验证:
- 断网测试:加载页面后,关闭网络(飞行模式或拔网线),重新跑一遍工具 —— 应该完全正常工作,因为所有 JS 已经加载到浏览器内存
- 离线缓存:把整个 piick.cc 网站缓存到本地(Chrome 的 “Make available offline”),然后彻底断网,跑工具
- 第三方审计:Piick 的开源代码会放到 GitHub(计划 Q3 2026),开发者可以审查 Canvas API 的调用、确认没有
fetch()调用来上传图片
FAQ
Piick 真的不存我的图片吗?
真的。技术上 Piick 服务器无法存储 —— 它是一个纯静态网站,没有数据库、没有应用服务器。图片在浏览器 Canvas 上处理,处理完直接下载到你的设备,从不经过 Piick 的服务器。
那 Piick 怎么赚钱?
页面上的 Google AdSense 广告。访客看广告,广告商付钱。仅此而已。
我的图片会不会被 Google 看到?
不会。AdSense 加载的是广告脚本,会读取你的页面 URL 和设备类型来投放相关广告,但不会读取你拖入工具的图片内容(广告脚本运行在 iframe 沙箱里,跟 Canvas API 没有接口)。
我处理完一张图片后,Piick 的 CDN 会有缓存吗?
不会。CDN 只缓存静态文件(HTML/CSS/JS),不缓存任何用户内容。你的图片连 Piick 的 CDN 都没到过 —— 它直接从浏览器到你的硬盘。
Piick 会做服务器端 AI 处理吗?
不会。这是 Piick 的核心原则 —— 不做服务端图片处理。任何”AI 增强功能”(发丝抠图、高清放大、风格转换)如果加入 Piick,必须在浏览器里用本地模型实现,不能偷偷上传到云端。
如果我想做”超高质量”的发丝抠图,有什么 Piick 推荐的云端方案吗?
诚实地说 —— Piick 不做商业推荐,这不是我们的范畴。但社区里常用的发丝抠图云端方案有:remove.bg(便宜,发丝好)、Adobe Express(订阅制,综合体验最好)、Photoroom(电商专门,带产品图背景替换模板)。
用云端方案前,确保你信任工具的服务条款、理解数据流向、对内容脱敏(产品图 OK,孩子证件照最好别上传)。
一句话总结
Piick 不传你的图片,不是因为营销承诺,而是技术层面无法上传 —— 网站是纯静态的,没有服务端存储能力。算法在浏览器 Canvas 里跑,图片从拖入到下载全程不离设备。
打开 piick.cc/tools/background-remover,按 F12 开 Network 面板,自己验证一次最踏实。