吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 14217|回复: 152
收起左侧

[原创工具] 二维码文件传输小工具(可在两台完全隔离的设备之间使用) - QFileTrans 2.0.0.6

    [复制链接]
xyt9812 发表于 2022-7-27 21:08
本帖最后由 xyt9812 于 2022-10-20 12:36 编辑

程序下载

总链接:https://wwd.lanzout.com/b03j7l92h#7i3b
密码:7i3b
已知问题

  1. 因转向CMake构建,exe应用会显得比较大,目前没有找到压缩的办法;
  2. 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版发送界面

PC版发送界面

安卓版发送界面

安卓版发送界面

安卓版发送界面

首先要点击“选择文件”,选择一个需要发送的文件,不支持文件夹、自动打包多个文件,可以使用拖拽进入。读剪贴板(等于Ctrl+V)可以读取剪贴板中的纯文字,若剪贴板复制了一个文件,会读取为文件。

fps是指发送二维码的切换速度,默认为12,经测试这个帧率是识别率的边界,大于这个帧率的话手抖和摄像头图像质量对识别的影响非常大,可以使用上下键调整FPS。

识别部分在内部自动裁切为720像素分辨率,若摄像头不支持高于该分辨率的模式则自动选择低分辨率。

选择完成后可以点击“开始发送”,也可使用空格键进行开始暂停,将接收设备对准发送设备的二维码保持收稳住等待即可。在待接收码小于100块时界面会提示剩余二维码的索引,该索引从1开始。

进度条可以调节,拖动进度条可以修改显示二维码的索引,也可使用左右键单帧调整,剩下码块不多的时候可以针对性地滑动到该码块处加快传输速度。

二维码编码采用字节编码,已经把二维码传输效率最大化了,但由于光学方式本身的限制,导致速率仍然不高,另外,本程序限制选择文件大小不能超过100MB。

接收

PC版接收界面

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位静态编译程序错误提示

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。特别说明:此版无意外为最终版

自己开发的,给点积分吧。

免费评分

参与人数 33吾爱币 +37 热心值 +30 收起 理由
Lsygood + 1 + 1 谢谢@Thanks!
196134828 + 1 + 1 19年吧,我写了一个类似的工具,取名叫乾坤大挪移,但只能传文字。你这个更.
cgsser + 1 + 1 谢谢@Thanks!
phillp + 1 + 1 我很赞同!
summcat + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
风沙喵 + 1 + 1 鼓励转贴优秀软件安全工具和文档!
Glaotou + 1 我很赞同!
pojie2001 + 1 + 1 我很赞同!
tatami + 1 + 1 谢谢@Thanks!
dgsuwei + 1 + 1 谢谢@Thanks!
yogisr + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
阿肥 + 1 + 1 谢谢@Thanks!
mormas + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
scyna + 1 + 1 用心讨论,共获提升!
nerico + 1 + 1 谢谢@Thanks!
bhh2048 + 1 + 1 谢谢@Thanks!
nikipa + 1 + 1 软件太棒了,能不能加个模块,仅发送文字内容,要不网上内容传到内网电脑还.
a84291212 + 1 + 1 热心回复!
kingpanfeng + 1 谢谢@Thanks!
cxs808 + 1 + 1 这软件太厉害了。谢谢作者
hzy4619666 + 1 + 1 谢谢@Thanks!希望大佬可以开发下去。因为某些场景还是非常实用的。从csdn.
你好,再见 + 3 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
submariner + 1 我很赞同!
sunlit + 1 我很赞同!
a8915171 + 1 + 1 我很赞同!
老墙 + 1 + 1 谢谢@Thanks!
简忘 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
benmagic + 1 + 1 热心回复!
笙若 + 1 + 1 谢谢@Thanks!
ysjd22 + 1 谢谢楼主,期待楼主更多应用
liwei8515 + 1 热心回复!
lyf558 + 1 已经处理,感谢您对吾爱破解论坛的支持!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

submariner 发表于 2022-8-7 06:59
本帖最后由 submariner 于 2022-8-7 07:09 编辑

简单看了一下,猜测lz直接用十进制字符表示第几帧和总帧数,帧数序号8字节,总帧数9字节,文件名12字节,内容140字节(有效长度105字节),辅助字符还是太多;优化可以考虑以下几个方面,

1.固定每帧的格式,比如前三个字符(指base64字符,下同)表示第几帧,随后三个字符表示总帧数(可表示的最大帧数64*64*64,应该够用了),再后面两个字符表示本帧长度(这个长度也可以省略,后面的数据都是文件内容),后面紧跟内容(我记得二维码自身有纠错能力,否则的话还要考虑放个crc校验码),这样原来的169字节有效140字节,可以压缩到169字节有效字节数增加为161(或者不含帧长度的163)字节

2.文件名不需要在每一帧中都包含(如果总帧数不同,则表示不是这个文件的有效二维码,可以简单作为文件名的一种近似替代或判断),可以只在第一帧中紧邻文件总帧数用一个固定长度的base64表示,只传输一次,可以稍稍加长,首帧顺便加个整个文件crc32校验码,后面合并后可以侦错
 楼主| xyt9812 发表于 2022-10-18 23:12
 楼主| xyt9812 发表于 2022-10-11 20:40
nikipa 发表于 2022-10-11 20:26
就是比如从手机上看到一段文字,想复制到内网电脑里,直接用您这软件出现个对话框复制进去生成二维码发送 ...

好嘞,我过两天改改
o1o_o1o 发表于 2022-7-28 19:51
谢谢 收藏备用  值得拥有
 楼主| xyt9812 发表于 2022-7-30 20:17
凌云墨客 发表于 2022-7-29 17:31
原理是啥,二维码转字符串吗

是的,目前就是将文件的二进制读取出来,一字节使用两个字符来表示,例如0xFF就表示为"FF",然后将这些二进制组合成一个长的字符串,在前面拼上段落号,末尾拼上总共段落数和文件名,使用明码生成二维码进行传输。
下一步的改进思路是将二维码的模式改为字节模式,即直接输入8bit字节即可生成二维码,这样传输效率可以相较现在提升2倍(现在两个字符16bit表示原文件一字节8bit,更改后就是8bit表示8bit)。想必这样还不够,在改进完上述思路后,有两条可以提升传输容量的路:1. 传输压缩编码:即在传输前就使用内置算法进行压缩编码,虽然可能使用压缩包也是一样的,但使用内置编码的一个好处是传输过程可以加密,这样可以实现发送接收约定密码后端到端的加密传输。2. 优化屏幕和摄像头这两个重要的转换设备,我认为目前屏幕部分优化可能性不大,但摄像头的优化空间还有,我发现设置摄像头的不同视频编码格式可以获得不同的图像质量,可以尝试将大部分视频编码格式解析出来后,在手机端使用某种算法自动对比摄像头支持编码格式的差别,以图像边缘锐利程度作为衡量标准,这样就可以采用自适应的高质量编码来提升图像的信息量;另外,应对手抖等影响传输的因素也非常关键,可以引入CV领域中一些消抖的算法,将手机加速度计的输入作为一个重要测量量,反推图像模糊的参数,从而实现高质量的帧消抖处理。
以上思路中,我认为最可以提升传输工具使用感受的应该是消抖算法的引入,如果能够开发成功,相信应该能够产生一些专利和不错的论文。
但目前阶段,由于本人能力有限,且空闲时间不多,这些思路只能冷藏了,在以后再探索吧。

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
当兵的男人 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

taogegongzuoshi 发表于 2022-7-28 11:12
感觉太复杂了,小文本应该还行!
 楼主| xyt9812 发表于 2022-7-28 11:20
本帖最后由 xyt9812 于 2022-7-28 12:45 编辑

主要就是用来传小文本,因为需求就这么多
lyf558 发表于 2022-7-28 11:27
这个产品怎么样?
kingtiger 发表于 2022-7-28 12:05
希望能传输文件夹
梦里叹月 发表于 2022-7-28 12:14
没看出来比微信、QQ传送文件有啥优势。微信本来就可以不登录电脑二维码直接传
 楼主| xyt9812 发表于 2022-7-28 12:42
这里定位的是无法联网的场景哦,没有wifi没有蓝牙没有u盘这样的场景下,这个软件会帮到大家的
wdlla2 发表于 2022-7-28 14:35
没有网络连接,没有蓝牙时,这俩软件怎么放到设备里运行呢  
wmzyb 发表于 2022-7-28 15:06
支持原创
my2008og 发表于 2022-7-28 15:14
传输文件夹看来只能做压缩包了
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-25 22:39

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表