当前位置:网站首页>使用二维码传输文件的小工具 - QFileTrans 1.2.0.1
使用二维码传输文件的小工具 - QFileTrans 1.2.0.1
2022-08-05 02:44:00 【小涛29】
原帖地址为吾爱破解,本账号与吾爱破解原贴为同一人所有,故投了原创。
使用场景
本程序可以使用二维码在两台完全隔离(没有网络连接,没有蓝牙)的、有显示器和摄像头的设备之间传输文件,使用QT5.15.10开发,同时编译了pc的64版程序和安卓的64位版程序,界面虽然简陋,但功能经我多次测试,基本没有问题。发送部分对性能要求不高,但接收部分对cpu有很高的要求,配置比较低(测试平台:天玑720内存8G可流畅识别)的手机不能保证好用。
使用方法
两个平台的界面操作逻辑完全一致,但是安卓版程序界面针对竖屏设备专门修改了。
发送
pc版程序发送界面
安卓版程序发送界面
首先要点击“选择文件”,选择一个需要发送的文件,暂时不支持文件夹、自动打包多个文件。
fps是指发送二维码的切换速度,默认为12,经测试这个帧率是识别率的边界,大于这个帧率的话手抖和摄像头图像质量对识别的影响非常大。
识别部分在内部自动裁切为720像素分辨率,若摄像头不支持高于该分辨率的模式则自动选择低分辨率。
选择完成后可以点击“开始发送”,将接收设备对准发送设备的二维码保持收稳住等待即可。在待接收码小于100块时界面会提示剩余二维码的索引,该索引从0开始。
进度条可以调节,拖动进度条可以修改显示二维码的索引,剩下码块不多的时候可以针对性地滑动到该码块处加快传输速度。
二维码编码采用明码编码,中间字符串为文件对应二进制信息,之所以没有采用二维码的字节编码模式是因为本程序调用了QZXing这个库,这个库目前不支持二维码字节编码模式。后续可能会优化编码方式。本程序限制选择文件大小不能超过5MB。
接收
pc版程序接收界面
安卓版程序接收界面
接收部分相对发送部分稍微复杂一点,首先可以点击下方ComboBox选择需要使用的摄像头,然后点击“打开相机”,尝试能否打开,若打不开,建议不用试了,因为本程序使用的QCamera库支持的摄像头编码格式非常少,甚至我还手工添加了NV21的转换代码以支持部分手机摄像头。若成功,可以点击“水平”、”垂直“、”旋转“这三个按键调整摄像头图像的方向,因为本人水平有限,暂时没有研究安卓的硬件抽象层以自动调整摄像头方向,我认为手工调整的难度并没有那么大,加入自动调整的收益没有那么大。
如果上面一切正常,可以点击“开始接收”,再点击发送设备上的开始发送即可接收文件了。
因为采用明码编码,传输速度相当慢,差不多是1秒1KB不到,本程序主要解决的问题在开头已经说明了,是解决有无问题,即使完全无法传输变为可以传输一些小文件。建议传输文件大小小于40KB,这样时间还算可以接受。
传输完成后会自动弹出选择文件界面,注意安卓版需要自己添加文件后缀,pc版如果接收安卓版的文件也需要手工调整文件名和后缀。
其他说明
传输过程已使用base64编码,相较1.1.6版传输相同文件的二维码张数少40%左右,1.2.0版和1.1.6版不通用!!!!
本人完全没有安卓开发经验,QT也是新学的,安卓程序完全使用C++代码编译,权限为自动索取,经测试,只赋予摄像头权限即可使用。
安卓版程序编译为64位,没有内置32位,之所以没有编译32位版是因为本程序对性能有一定要求,我认为32位的处理器大概率带不动本程序,所以直接没有编译。
安卓版程序信息
安卓版程序索要权限
程序下载
1.1.6.2版
说明:发送部分支持拖拽文件开始;优化接收部分多线程调用。
1.2.0.1版
说明:采用base64编码,1.1.6版和1.2.0版不通用,请勿尝试!
边栏推荐
- OpenGL 工作原理
- 继承关系下构造方法的访问特点
- 1873. The special bonus calculation
- RAID disk array
- Gantt chart is here, project management artifact, template is used directly
- [机缘参悟-60]:《兵者,诡道也》-2-孙子兵法解读
- select 标签自定义样式
- torch.roll()
- C language diary 9 3 kinds of statements of if
- Cloud Native (32) | Introduction to Platform Storage System in Kubernetes
猜你喜欢

从零到一快速学会三子棋

Intel XDC 2022 Wonderful Review: Build an Open Ecosystem and Unleash the Potential of "Infrastructure"

链表的简单描述及代码的简单实现

Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中

shell语句修改txt文件或者sh文件

金仓数据库如何验证安装文件平台正确性

nodeJs--封装路由

What should I do if the self-incrementing id of online MySQL is exhausted?

2022-08-04: Input: deduplicated array arr, the numbers in it only contain 0~9.limit, a number.Return: The maximum number that can be spelled out with arr if the requirement is smaller than limit.from
![02 [Development Server Resource Module]](/img/60/f77ed0bb0e5654c9dcd70b73a5bee8.png)
02 [Development Server Resource Module]
随机推荐
语法基础(变量、输入输出、表达式与顺序语句)
js中try...catch和finally的用法
回顾51单片机
1484. Sell Products by Date
shell语句修改txt文件或者sh文件
语法基础(变量、输入输出、表达式与顺序语句完成情况)
C学生管理系统 据学号查找学生节点
Ant Sword Advanced Module Development
Apache DolphinScheduler, a new generation of distributed workflow task scheduling platform in practice - Medium
mysql没法Execute 大拿们求解
程序员的七夕浪漫时刻
Pisanix v0.2.0 发布|新增动态读写分离支持
Apache DolphinScheduler新一代分布式工作流任务调度平台实战-中
【日常训练】1403. 非递增顺序的最小子序列
采用redis缓存的linux主从同步服务器图片硬盘满了移到新目录要修改哪些指向
Lexicon - the maximum depth of a binary tree
【LeetCode刷题】-数之和专题(待补充更多题目)
汉字转拼音
word分栏小记
undo问题