程序下载
总链接:https://wwd.lanzout.com/b03j7l92h#7i3b
密码:7i3b
已知问题:
- 因转向CMake构建,exe应用会显得比较大,目前没有找到压缩的办法;
- 1.3.2.1版及之前的版本在部分操作系统上运行会提示缺少某个dll依赖,如果遇到,请下载总链接中的“QFileTrans_32bit_依赖.rar”或“QFileTrans_64bit_依赖.rar”(根据下载的exe版本确定),再根据rar中README.txt中的提示将dll拷贝到指定目录即可。
使用场景
本程序可以使用二维码在两台完全隔离(没有网络连接,没有蓝牙)的、有显示器和摄像头的设备之间传输文件,只需要使用摄像头和屏幕即可以一个不错的速度传输小文件,使用场景可以是隔离内网向外部传输文档、日志等文件,如果需要传输文件夹可以使用压缩包。主要基于Qt5.15.2开发,同时支持64位win10和64位安卓程序,界面虽然简陋,但功能经我多次测试,基本没有问题。发送部分对性能要求不高,但接收部分对cpu有很高的要求,配置比较低(测试平台:天玑720内存8G可流畅识别)的手机不能保证好用。
使用方法
两个平台的界面目前完全一致,操作逻辑也完全一致。
发送
PC版发送界面
PC版发送界面
安卓版发送界面
安卓版发送界面
首先要点击“选择文件”,选择一个需要发送的文件,不支持文件夹、自动打包多个文件,可以使用拖拽进入。读剪贴板(等于Ctrl+V)可以读取剪贴板中的纯文字,若剪贴板复制了一个文件,会读取为文件。
fps是指发送二维码的切换速度,默认为12,经测试这个帧率是识别率的边界,大于这个帧率的话手抖和摄像头图像质量对识别的影响非常大,可以使用上下键调整FPS。
识别部分在内部自动裁切为720像素分辨率,若摄像头不支持高于该分辨率的模式则自动选择低分辨率。
选择完成后可以点击“开始发送”,也可使用空格键进行开始暂停,将接收设备对准发送设备的二维码保持收稳住等待即可。在待接收码小于100块时界面会提示剩余二维码的索引,该索引从1开始。
进度条可以调节,拖动进度条可以修改显示二维码的索引,也可使用左右键单帧调整,剩下码块不多的时候可以针对性地滑动到该码块处加快传输速度。
二维码编码采用字节编码,已经把二维码传输效率最大化了,但由于光学方式本身的限制,导致速率仍然不高,另外,本程序限制选择文件大小不能超过100MB。
接收
PC版接收界面
PC版接收界面
安卓版接收界面
安卓版接收界面
接收部分相对发送部分稍微复杂一点,首先可以点击选择框选择需要使用的摄像头,然后点击“开始接收”,尝试能否打开,本程序目前只支持QCamera内置的几种视频编码样式,若打不开则表示该型号摄像头不支持,会提示相机不支持。若成功,就可以将相机对准发送端开始接收文件了。
二维码传输速率不快(FPS为12时约3.3KB/s左右),因为本程序主要解决的问题在开头已经说明了,是解决有无问题,即使完全无法传输变为可以传输一些小文件。建议传输文件大小小于100KB,这样时间还算可以接受。
传输完成后会自动弹出选择文件界面,若不选择位置,会提示重新尝试,点击取消不再保存,点击OK键重新尝试保存,注意安卓版需要自己添加文件后缀,pc版如果接收安卓版的文件也需要手工调整文件名和后缀。如果接收的文件为剪贴板读入,则会提示选择保存方式,可复制到剪贴板,也可保存为txt文件。
其他说明
注意:1.1、1.2、1.3版(1.3版和2.0版通用)只在该版本内通用,因为采用了不同的编码样式,请不要交换尝试。
本程序分为xp版、32位和64位版(Win7及以上系统)。其中,xp版使用QT6.5.3动态库编译(这里分享一个经验:静态库编译很容易不适配,动态库部署后很轻易就能够适配),解压压缩包后文件夹中的exe文件即为程序本体;其他32、64位版为静态库编译,1.3.2.1版及之前的版本在部分操作系统上运行会提示缺少某个dll依赖,如果下图所示,若遇到,请下载总链接中的“QFileTrans_32bit_依赖.rar”或“QFileTrans_64bit_依赖.rar”(根据下载的exe版本确定),将文件解压后,根据rar中README.txt中的提示,把三个dll文件放到“C:\Windows\System32”路径下即可解决本问题。
另外,如果出现无法定位程序输入点_ZNSt18condition_variable4waitERSt11unique_lockISt5mutexE
这个报错,请检查你的电脑系统环境Path下是否有其他非本链接提供版本的libstdc++-6.dll,这是因为win10引入新的错误检查机制造成的,使用了与编译版本不一致的libstdc++-6.dll会导致报错。
32位静态编译程序错误提示如下,64位同理:
32位静态编译程序错误提示
本人没有安卓开发经验,QT也是新学的,安卓程序完全使用C++代码编译,权限为自动索取,经测试,只赋予摄像头权限即可使用。
安卓版程序编译为64位,没有内置32位,之所以没有编译32位版是因为本程序对性能有一定要求,我认为32位的处理器大概率带不动本程序,所以直接没有编译。
安卓版程序信息
安卓版程序信息
安卓版程序索要权限
安卓版程序索要权限
历史更新
1.1.6.1版
说明:初版
1.1.6.2版
说明:发送部分支持拖拽文件开始;优化接收部分多线程调用。
1.2.0.1版
说明:采用base64编码,1.1.6版和1.2.0版不通用,请勿尝试!
1.2.1.1版
说明:修复了上述base64编码库的小bug,使用了QT自带的qCompress函数可以压缩传输数据(对压缩包效果并不明显)。加入了xp的支持。
特别说明:1.2.1.1版分为xp版、32位和64位版(Win7及以上系统)。其中,xp版使用QT6.5.3动态库编译,解压压缩包后文件夹中的exe文件即为程序本体;其他32、64位版为静态库编译,32位版在部分没有运行库的Win7上会弹出如下图错误提示,请将连接中“32bit静态编译程序专用DLL.rar”文件解压后,将三个dll文件放到“C:\Windows\System32”路径下即可解决本问题。
1.2.1.3版
说明:为摄像头设置了自动连续中心对焦,添加了YUYV格式视频流的支持,但无法测试,大家可以测试一下然后说说怎么样。另外,这次发现了一个超大的失误,感谢CSDN@天玄奈何 发现的问题提醒了我。主要是安卓发布的版本错误,从1.2.0.1版开始一直到1.2.1.2版都是同一版1.2.0.1,没有变化。这次重新改了1.2.1.3版,安卓可以自动对焦,使用小米手机尝试了,其他几乎没有改动。这次提醒我以后发布前一定要全部从头测试一下!!
1.2.1.4版
说明:修复YUYV编码RGB颜色赋值错误问题。
1.3.1.1版
说明:全新传送算法,使用二维码字节模式进行文件传输,最大化二维码传输效率;全面转向CMake构建系统,为后续添加第三方现代化库打下良好基础。
1.3.1.2版
说明:发送部分在选择文件后可使用 空格 键开始发送,空格键也可以暂停;修改最大fps数值为35(这个没啥影响,用不了那么高)。
1.3.2.1版
说明:修改默认字体;安卓端修改部分UI为material样式;现可使用上下键调整FPS数值。
特别说明:从1.3.1.3版开始,本应用不再编译xp版本,之后二维码编码的算法应该不会再改变了,只会优化摄像头图像和界面的部分,xp版应该可以一直通用。
2.0.0.1版
说明:此版目前仅有安卓平台支持,但是与win10平台1.3.2.1版通用。安卓版简化了操作步骤,现在只需要一键即可开启传输,并且相机的旋转和水平设置在内部完成,自动识别。
特别说明:自2.0.0.1版开始前端全面换用qml语言编写,抛弃QWidget,安卓界面采用了qml内置的material风格,已经与普通安卓kotlin编译的程序无异。目前没有更新win10版的原因是qml在win10平台不支持静态编译,打包发布需要附带一堆文件,正在尝试更好的解决办法。
2.0.0.2版
说明:Win7请下载Win7版!采用动态编译加打包的方式发布win10版,后续全部采用该方式发布,不再考虑静态编译方式发布。win10版与安卓版界面、操作方式完全一致,在安卓版的基础上支持上下左右和空格五个快捷键。安卓版相比上一版调整了界面布局,修复了按键错位的bug。
2.0.0.4版
说明:修改了windows下的显示样式。修复了一些小bug,修复了安卓版开启发送情况下返回卡住的问题。
2.0.0.5版
说明:增加了读取剪贴板并发送的功能;修复了一些小bug。
2.0.0.6版
说明:修复了上一版中的一些bug。特别说明:此版无意外为最终版!
自己开发的,给点积分吧。