我在编了一个远程实时控制的程序,截屏并发送,但速度太慢,图片太大,14K多(JPEG) 
怎么样把图片压缩到比JPEG还要小??

解决方案 »

  1.   

    别外想办法吧,要比JPEG还小很费劲的!
      

  2.   

    从静态图来说,jpeg的压缩率已经是非常的高的了,所以,你要超越这个就比较困难。看你说的实时控制,是不是很频繁的截屏并不断发送?如果是这样,你还可以考虑相连临图之间的差异量编码,这就要了解到Mpeg等东西了,就是VCD、DVD等的编码格式。我了解也不深。如果要搞的话,去找些图象通信方面的书来看看,或者找搞流编码的人问问。
      

  3.   

    jpeg的CompressionQuality改成最小值1
    图片尺寸改小
    14K不大吧,用猫上网都很快的,除非你0.01秒发送一次图片
      

  4.   

    我试试了一下,1024X768的桌面截图下来压缩成jpg文件(JPG.CompressionQuality := 40;),63K,清晰度也过得去了
    实时控制可以这样做,我的思路是:
    发送端时刻扫描屏幕,采用隔行或隔列的方式扫描以加快速度,发送判断象素是否变化,变化则发送这个点信息(这里不用发送整个图片,减少了数据传输量),然后根据收到的点信息在服务端画点,以还原图片
      

  5.   

    把屏幕保存成一个BMP图片,按坐标比较屏幕上的点和BMP上的点,如果不等于就发送这个点,并且把这个点保存到BMP上,以备下次扫描检查
      

  6.   

    to: zeroxing(光头) 
    MPEG有哪些比较出色的书,能不能介绍一下啦.有没有电子书啊,网上能不能找到,买书没时间去,而且还不便宜.
    谢谢!!
      

  7.   

    你要是不用MPEG的话,就压缩BMP图片传,呵呵,比JPEG的快。啊?不信?呵呵
    你自己做双缓冲区的,那样才能保证图象的流利。还是用MPEG比较优化的。
      

  8.   

    TO: zzlingaaa(小舟)
    是要在控制端得到被控端的鼠标位置和形状并在控制端显示出来,这样才能知道被控端在用鼠标干什么.To: gemouzhi(gemouzhi) 
    说的具体点吧!多媒体方面的东西没搞多久啊,怎么压缩BMP?
    双缓冲区..具体点啊?To: fashi1000(黄泉) 
    这样一来速度就不稳定了,如果对方在全屏看电影或动画,那不是整个屏幕都会变?
      

  9.   

    to:  zzlingaaa(小舟)
    这并不是很重要,只是在不控制的时候看看被控方在干什么而已.现在主要是速度问题,现在编好的只能凑合着用!!@!!
      

  10.   

    to: dakk(初学者) 
    抓屏的并不耗时,在本地机器上连续抓图并显示出来我试过的,很流畅,一点都不卡.TO:everyone
    为什么在本地机连续抓屏不卡,而在远程机器大约3秒才抓一次反而会卡呢?难道卡的原因不是或不只是抓屏!!?
      

  11.   

    请问“发送端时刻扫描屏幕,采用隔行或隔列的方式扫描以加快速度,”扫描屏幕怎么扫描?有什么API函数吗?
      

  12.   

    没有API函数.自己写代码扫,上面有人回答过了,你看看吧
      

  13.   

    去看看VNC软件是怎么做的吧,它是OpenSource的。