怎么样能提高网络传输图像的效率?比如说client向server获取图像,我的方法是先用bitblt抓取屏幕的图像,然后转换为Jpeg格式,再保存至Tstream,client端再把得到的数据解压缩然后显示出来,但这样很不流畅,速度很慢,而且被获取屏幕的电脑在每次传输式都会卡一下,又没有好的解决办法啊?

解决方案 »

  1.   

    考虑格式化为 MJpg or Mpge, 这样传送的大小会小很多!
    但,不利的是:代码复杂很多,cpu占用也会多很多
      

  2.   

    800*600真彩分辨率的屏幕数据量非常大,所以会出现这样问题,可以采小图比如:352*288速度就会提上来。数据压缩:
    压缩比高,占用的CPU资源约高,压缩比低,占用的网络带宽高,如果在LAN上可以用压缩比低的算法:比如ZIP流,这样基本上能达到实时,在Internet上绝对不行。
      

  3.   

    使用zlib压缩,考虑到屏幕内容变化一般不会太大,在拷屏时可在用差屏的方法,即将当前屏幕图象与上一屏幕进行异或运算,将结果压缩,你会发现数据变的极少,接收方只用将数据解压后与上一屏幕所取图象进行异或运算就可以得到发送方的当前屏幕。
      

  4.   

    我的想法和wizardqi一样,而且小弟(只是一个想法,目前还没有写),就是减少抓屏的次数,有的时候并不需要去抓屏,如用户不做任何操作时,只有当paint事件发生时再抓屏。还有就是可以doublebuffer方法,这样会使在显示图片时更加的流畅。
      

  5.   

    同上还有,压的时候设一下jpeg质量质量差点,象素就小了
      

  6.   

    jpeg已经是压过了,不用再想怎么压了再压时间更长,压不了多少