盒子资源分类
屏幕划块传输演示代码
关键字:屏幕传输 划块 CapClient IdTCPServer
来 自:原创
平 台:Win2k/XP/NT,Win2003
下载所需:0 火柴
深浅度:中级
完成时间:2007/5/1
发布者:hackbear
发布时间:2007/5/7
编辑器:DELPHI7
语 种:简体中文
分 类:媒体与图形
下载浏览:1097/14390
这个代码本来是参考一个台湾人写的,原来是UDP控件,里面很多代码有些乱,我改用了IdTCPServer,注释了代码,现在发现的问题就是图片传输过,用StrechDraw 画出来,会有明显的刷屏痕迹,有时还会漏块,发送快了这种情况就更明显,发出来大家一起看看吧。
本站原创作品,未经作者许可,严禁任何方式转载;转载作品,如果侵犯了您的权益,请联系我们 !
相关文章
相关评论
共有评论7条
当前显示最后6条评论
aizjcn
2007/5/8 1:38:59
老毛病又犯了;向hackbear兄弟道歉; 这次认真看了一下代码;改了一下;本机和虚拟机测试没有丢块问题; 我自己一直是用流比较的方案;感觉分块不一定就快; 解决丢块问题代码如下; With TTimer(Sender) Do Begin capx:=(tag Mod 8)*DefWidth; capy:=(tag Div 8)*DefHeight; ScreenShot(capx,capy,DefWidth,Defheight,capblock[tag]); xstrm:=TMemoryStream.Create; capblock[tag].SaveToStream(xstrm);//抓取到的压缩入流 xstrm.WriteBuffer(tag,SizeOf(Integer)); //插入编号再比较内容 NewCRC[tag]:=CalcCRC32(xstrm.Memory,xstrm.Size);
hfhappy
2007/5/8 9:11:54
全屏接收端试试,机子奇卡,而且绝对不超过5贞 >>我自己一直是用流比较的方案;感觉分块不一定就快; 这个也是分块啊 这个代码是先分块,然后计算bmp的crc,然后比较crc确定是否变化,我感觉效率还不如单纯的流比较, (result shr 8) xor Table[q^ xor (result and $000000FF)]; 循环相同次数,这个能有指针比较快吗?
aizjcn
2007/5/8 13:32:47
A:Bmp1.ScanLine[Height-1];//内存数据Bmp头部,前面还有一节图象信息数据 B:Bmp1.ScanLine[Height-2]; .......... 假如图象内存数据是这样; __________ A:[1][2][3][4][5][6][7][8] B:[1][2][3][4][5][6][7][8] C:[1][2][3][4][5][6][7][8] D:[1][2][3][4][5][6][7][8] E:[1][2][3][4][5][6][7][8] __________ 变化的时候是这样 __________ A:[1][2][3][4][5][6][7][8] __________ B:[1][2]|[5][4][5]|[6][7][8] C:[1][2]|[4][6][5]|[6][7][8] D:[1][2]|[5][4][6]|[6][7][8] ---------- E:[1][2][3][4][5][6][7][8] __________ 指针A<-B<-C<-D<-E __________ 求变化的算法咬金说的倒序快 事实上其他的技巧也一样可以快 只要知道了结构就发挥自己的天分就行了 还有就是函数的选择上;代码的精简上;对不同对象方法的了解上; 只能说点废话;实在是没时间去做这些;希望有用;
qsmile
2007/5/11 10:31:24
这几天好象研究这个的人一下子多了好多 真服了你了,用 CRC32 来比较,你计算CRC32 也要花时间的,还不如直接比较内存 CompareMem 楼上说倒的倒序是什么意思
lybase
2007/5/16 11:43:04
cpu占用太大了,很容易被kill掉啊
aizjcn
2007/5/25 0:01:23
今天找时间测试了一下行扫描(非分块比较); 事实证明我是对的; 800X600 64帧/秒 1024X768 45帧/秒 1152X864 41帧/秒
我要发表评论
查看全部评论