关于 使用 mirror driver 镜像驱动做屏幕抓取监控(解决了给你1000分)

flameearth 2009-07-13 04:07:42
关于使用 mirror driver 镜像驱动做屏幕抓取监控
再做一个屏幕监控软件,现在卡在性能上了。抓整个屏幕传送。性能太滥了!

谁能告诉我怎么用mirror driver 只抓取屏幕变化的部分, 如果你有其他其他方法也可以。

解决了我给他加 1000分全是`你的
...全文
1416 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
bweaglegao 2012-08-09
  • 打赏
  • 举报
回复
请问,楼主有没有mirror driver的资料,这个怎么学啊?
kooyou68 2012-05-10
  • 打赏
  • 举报
回复
能参考下么?谢谢![Quote=引用 18 楼 的回复:]

楼主还在弄吗? 我现在也在弄 这里有代码 不知还需要不
[/Quote]
_拂晓 2012-04-24
  • 打赏
  • 举报
回复
楼主还在弄吗? 我现在也在弄 这里有代码 不知还需要不
h07832005 2010-04-02
  • 打赏
  • 举报
回复
mark
flameearth 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 jiangsheng 的回复:]
http://blog.joycode.com/jiangsheng/archive/2004/01/01/10410.aspx
[/Quote]

有没有代码让我参考下?
副组长 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 flameearth 的回复:]
引用 11 楼 gordon3000 的回复:
我这手边没有代码,这个方案应该行。
你主要需要哪部分?模拟键盘?取裁剪版还是压缩?




只要能获取屏幕变化部分 截取后压缩后 发送出去, 接受端接到后 将变换部分的图像显示在原图像上,
[/Quote]

只获取屏幕变化部分需要比较多的探测代码,其实效率更不高。我建议你保存前后两帧图像,然后相减,没变化的部分是0,有变化的部分非0。然后RLE压缩。没变化的部分因为都是0,压缩后几乎不占什么空间。这样效率会更高一些。
蒋晟 2009-07-14
  • 打赏
  • 举报
回复
http://blog.joycode.com/jiangsheng/archive/2004/01/01/10410.aspx
蒋晟 2009-07-14
  • 打赏
  • 举报
回复
用隔快扫描吧……
chenxiaojuan_1208 2009-07-14
  • 打赏
  • 举报
回复
学习了
flameearth 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 gordon3000 的回复:]
我这手边没有代码,这个方案应该行。
你主要需要哪部分?模拟键盘?取裁剪版还是压缩?

[/Quote]

只要能获取屏幕变化部分 截取后压缩后 发送出去, 接受端接到后 将变换部分的图像显示在原图像上,
副组长 2009-07-14
  • 打赏
  • 举报
回复
我这手边没有代码,这个方案应该行。
你主要需要哪部分?模拟键盘?取裁剪版还是压缩?
flameearth 2009-07-14
  • 打赏
  • 举报
回复
分辨率大就不可以了阿~ 性能还是会出现问题的, 而且这个软件性能要求的很高~~
目前收集了 一些资料 只有 mirror Driver在驱动层 上 操作 但是不知道怎么用~~
laviewpbt 2009-07-14
  • 打赏
  • 举报
回复
我也觉得比骄变换的区域在去传送也许也有难度。

如果抓取全屏,然后利用最优色+不抖动转换为8位色,对于我们常用的桌面操作的图像(大部分是连续的黑色和白色区域)利用简单的RLE压缩 压缩字节流可以达到不错的效果。
经过我测试,如果只选取使用最多的前64种颜色,上述方法从转换到压缩完成大概需要40ms,压缩比大部分情况在1:20左右,1024*768的压缩后也就40KB左右。


flameearth 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jiangsheng 的回复:]
用隔快扫描吧……
[/Quote]

说详细阿~~
flameearth 2009-07-14
  • 打赏
  • 举报
回复
目前收集了 一些资料 只有 mirror Driver在驱动层 上 操作 但是不知道怎么用~~
hgreminem 2009-07-14
  • 打赏
  • 举报
回复
帮顶 顺便关注~~~~
flameearth 2009-07-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 gordon3000 的回复:]
灰常灰常多的分分哦,口水都出来啦!
我通常这样,定时发送PrintScreen键盘。程序不停地从裁剪版取全屏数记。两块内存,交替作为当前帧和上一帧。
当前帧减去上一帧,相同的图像区域都是0了。然后游程编码压缩,算法简单快速,如果两帧无变化只传几个字节。

我觉得这样效率是比较高的,只传屏幕变化部分想法是好的,但是检测还是需要很多的计算资源。

[/Quote]

能 给个代码 或 程序 吗 ??
flameearth 2009-07-14
  • 打赏
  • 举报
回复
能 给个代码 或 程序 吗 ??
fengrx 2009-07-13
  • 打赏
  • 举报
回复
个人觉得数据压缩应该是关健吧。

屏幕比较,查找变化区域太浪费CPU时间了。
副组长 2009-07-13
  • 打赏
  • 举报
回复
灰常灰常多的分分哦,口水都出来啦!
我通常这样,定时发送PrintScreen键盘。程序不停地从裁剪版取全屏数记。两块内存,交替作为当前帧和上一帧。
当前帧减去上一帧,相同的图像区域都是0了。然后游程编码压缩,算法简单快速,如果两帧无变化只传几个字节。

我觉得这样效率是比较高的,只传屏幕变化部分想法是好的,但是检测还是需要很多的计算资源。

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧