本人现在再做一个屏幕监控的模块,流程如下:监控端向被监控端通过CSocket发送命令,被监控端接收到命令后,将屏幕保存为bmp并将它转换成jpg文件(质量参数quality=50),然后再将jpg文件传送到监控端并显示。监控端大概每一秒向被监控端发送一次命令。经过测验发现在被监控端cpu的占有率为100%,实在是太大了。
我现在再考虑两种方法,一种是将定时器放在被监控端,被监控端定时向监控端发送jpg文件;另一种方法是在被监控端采用多线程,但怎样分配线程的使用目前还想不清楚。
不知道哪位有经验的好心人能够给与指点,并且如果有其他比较好的方法(就是在这个思路上不做大的改动,bmp to jpg)也可以给我详细的指点,谢谢:)

解决方案 »

  1.   

    bmp to jpg本身就很耗资源。
    我看过一个这方面的示例,它用的是霍夫曼压缩,Run Length编码解码。
      

  2.   

    bmp to jpg本身就很耗资源。
      

  3.   

    这样做肯定是不行的,如果要做可以参考WINVNC的代码.
      

  4.   

    vnc可能短时间内掌握起来有困难,好像直接传送bmp图像传输量就很大,我想问问还有什么其它的好办法吗
      

  5.   

    我想问一下,如果用winvnc的话实时性如何,会不会很消耗cpu资源呢
      

  6.   

    这个 问题是比较复杂的涉及到图象的压缩和编码解码还有就是图象处理需要专业的知识了,不过我认为你是做监控软件的话不需要这样吧,有很多方案啊:
    1,找个组态软件市面上很多也不贵,但是象PLC和DCS这样的系统的监控软件除外了。
    2,可以自己开发,但是也不用象你这样啊,将状态点采集上来以后,显示的界面在上位机上做就可以了,即使你的系统需要象图象采集卡这样的设备也好办。
    最后老兄如果你非得要坚持你的方案那么我建议 你去中国工控网去看一下那上面或许有你要的东西!!
      

  7.   

    你的办法不错,希望你将BMP采用MPEG4压缩,快速,高效,祝你好运!