为什么 Mandumon 的工具全部在浏览器内处理
坦诚说明 Mandumon 的表情和二维码工具为何无需上传、仅在浏览器中运行,Canvas 与 Web Worker 如何实现这一点,以及这种方式的局限。
- 发布日期
- 更新日期
使用在线转换工具时,你可能会想:“我的照片到底去了哪里?”Mandumon 的表情制作器和设计二维码,在设计上不会把你输入的文字和照片上传到服务器,而是只在你自己的浏览器中处理。本文将说明这是如何实现的、带来了哪些好处,又带来了哪些不便,不回避其中的取舍。
“在浏览器内处理”是什么意思
一般的在线工具会把文件发送到服务器,由服务器转换后再把结果传回来。浏览器端处理则不同:打开页面时,一段用 JavaScript 编写的程序会随页面一同送达,此后所有的计算都在你自己的电脑或手机上运行。选择照片时,文件会被读入浏览器的内存并在其中绘制,不会离开你的设备。服务器的职责是提供页面和程序,它从不会收到你的图片。
为什么这样设计
- 隐私:家人的照片、公司的 Logo,或二维码里的 Wi-Fi 密码都不必传到任何地方,因此也无需托付给我们。
- 速度:没有上传和下载的等待,修改文字的瞬间预览就会随之变化。
- 成本与稳定性:由于不需要运行转换服务器,工具得以保持免费,无需注册或订阅,可能出故障的环节也更少。
- 抗干扰能力:页面加载完成后,即使网络不稳定,大部分操作也能继续。
通俗地讲讲 Canvas 与 Web Worker
浏览器自带一块名为 Canvas 的绘图区域。你告诉它文字放在哪里、用什么字体,或者照片要旋转多少度,它就会逐个像素地画出图像。动态表情不过是依次绘制许多略有不同的图片,再拼接成序列。把这些帧打包成一个 GIF 文件的过程叫作编码,同样在浏览器中完成。
Web Worker 是一个帮手,它让浏览器可以把计算工作与保持界面响应的工作分开执行。如果繁重的运算与界面在同一处运行,按钮可能会卡住;交给 Worker 处理,操作就会保持流畅。并非每个工具都需要它,但浏览器端处理如今之所以切实可行,部分原因就在于浏览器本身已经具备这些能力。
坦率说明局限
在浏览器内处理并不是魔法,了解它的不足会很有帮助。
- 受设备性能影响:较大的图片或帧数很多的 GIF,在较旧的手机上可能运行缓慢甚至失败。
- 部分数据首次使用时需要下载:字体以及 AI 抠图等功能,会在第一次使用时获取所需内容。下载的是字体或模型,而不是发送你的照片。
- 并非完全不留痕迹:被请求的地址、时间和浏览器信息等基本访问记录,可能由托管服务商 Cloudflare 处理;颜色等设计设置则可能保存在你自己的浏览器中。
- 分享则另当别论:如果你选择把表情发布到图库,展示所需的信息会保存在服务器上。使用了上传图片的表情无法发布。
- 你可以自己验证:熟悉浏览器开发者工具的人可以通过 Network 标签页查看网络请求。比起让你“相信我们”,可以被验证更重要。
如何自己验证
- 在浏览器中打开表情制作器,然后打开开发者工具(F12)并切换到 Network 标签页。
- 上传一张照片,并切换几种效果,同时观察该标签页。
- 你不会看到携带图片的上传请求(POST)。
总之,浏览器内处理与其说是“请相信我们”,不如说是“请自己验证”。不过,这并不意味着所有风险都消失了,所以最好分清哪些信息留在设备内、哪些信息会根据你的选择发送到服务器,这样用起来才更放心。Mandumon 今后开发新工具时也会优先遵循同样的原则;如有例外,会在该工具的说明文字和隐私政策中明确写出。