如何不用网络把文件从电脑传到手机:libcimbar 完整快速上手指南
【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar
安全环境里的机器不能联网,PDF 怎么发到手机上?libcimbar 把屏幕变成一块"动态二维码",让手机摄像头一路拍过去就能接收文件。实测 850 千比特/秒(约 106 KB/s),几兆的文件一分钟不到就送完了——不用插线、不用网、不用蓝牙。
痛点:机器"被锁"之后,文件传输卡在哪
真实场景里,接收端经常是完全断网的:政务内网工位、医院系统、工控机房。U 盘一插安全告警,蓝牙被禁用,NFC 也没有。你想把自己的一份十几兆文档挪到手机上,传统通道全被掐断。
靠"打印普通二维码再拍照"也不现实:常规二维码有效载荷只有几 KB,错误一多就得重扫,十几 MB 的文件得拍几千张。所以真正需要的是一种高密度、抗干扰、还能持续播放的"大容量条码"。
原理拆解:一格彩色方块凭什么装下整个文件
每个小方格存 6 位数据,一帧净收 7500 字节
cimbar 码块是 1024×1024 像素的网格,小图块 8×8 像素。每个图块有两层信息:从 16 种图案里选一种,编码 4 位;再配上 4 种颜色之一,多编码 2 位。
打个比方,它像一套彩色数独——每个格子的"字母"同时由形状和颜色决定。这样一帧扣掉纠错开销后能装7500 字节有效数据,理论上限约 9300 字节。
Reed-Solomon 纠错:糊了几个字也能推出来
摄像头拍屏幕必然有模糊、噪点和轻微错位,出错是常态。编码端因此给每 125 字节真数据配 30 字节"保险"(Reed-Solomon 码,即 ecc=30/155 配置)。
类比:一份电报糊掉了几个字,只要冗余在,就能把原文推回来 ✅ 官方给出的预期纠错率低于 1%,而且实测中这些零星错误都能被吸收。
喷泉码:页面乱序到,也能把书拼回来
一帧 7500 字节不够装大文件,libcimbar 用喷泉码(wirehair)把文件切成海量独立数据包。这类码的妙处在于:收到顺序可以任意,只要比需要的多收一包,就能重建整个文件——哪怕中间丢帧、坏帧都不影响。
就像一本标了编号的书:不用按 1、2、3 顺序集齐,拿到任意足够多的页就能复原。这也解释了为什么屏幕上播放的是不断变化的动画——每一帧都是一张"独立随机页"。单文件上限(压缩后)约33.5 MB。
实测数据:能跑多快,能装多大 ⚡
官方基准用一台骁龙 625 中端老手机(4 线程)接收,瓶颈在摄像头而不是 CPU:
- B 模式(当前默认):4,689,084 字节(压缩后)44 秒传完,约852 千比特/秒,折合106 KB/s
- 旧 4C 模式:4,717,525 字节要 45 秒,约 838 千比特/秒
- 单帧净数据7500 字节,理论上限约 9300 字节
- 单文件上限(压缩后)33.5 MB
- 环境光线好、屏幕用白色背景、摄像头正对屏幕,稳定性明显更高
换句话说:一块普通电脑显示器 + 一部普通手机,44 秒送出 4.7 MB。
上手路径:三步传出你的第一个文件 📱
不用写代码。编码器被编译成 WASM,任何现代浏览器都能跑:
- 在电脑浏览器里打开官方网页版编码器,选好文件,屏幕开始播放动画码
- 手机装 Android 端解码应用 cfc,用摄像头对准屏幕
- 等进度走完,文件自动重组、解压、落盘
喜欢命令行也行,克隆源码后只需一条命令:
./cimbar_send inputfile.pdf它把文件编码并在窗口里播放,手机对着拍就行。
进阶:想深挖的话,源码从这里入手
- 编码核心在
src/lib/encoder/,Reed-Solomon 与喷泉码协议都在这里 - 符号编解码(16 个图块字典的识别与生成)在
src/lib/cimb_translator/ - 图像找角、透视校正在
src/lib/extractor/,相当于 QR 识别里的"扫描"环节
编码器还能以 WASM 形式嵌进任何网页,离线用也行。路线图里还有个 5×5 的 S 模式在开发,目标是突破 1 Mbit/s。
收尾
气隙传输的本质不是发明新通道,而是把"屏幕 + 摄像头"这条旧通道挤到 100 KB/s 的持续带宽 📡。如果你的两台设备"不许说话",这个方案值得先试一把。
【免费下载链接】libcimbarOptimized implementation for color-icon-matrix barcodes项目地址: https://gitcode.com/GitHub_Trending/li/libcimbar
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考