使用GDI与DfMirage 镜像驱动进行屏幕采集的比较

本文探讨了在Windows环境下,利用GDI和DfMirage两种技术进行屏幕采集的差异与应用场景。GDI适用于简单屏幕截图,而DfMirage则在实时屏幕捕获和视频流方面表现出优势。这两种方法在性能、效率和功能上各有特点,为不同的屏幕捕获需求提供了选择。
摘要由CSDN通过智能技术生成

 屏幕截图(屏幕采集)在一些办公、IM、远程登陆与控制、视频等软件中经常使用,通过屏幕截屏实现屏幕远程共享、抓拍成图像文件或视频文件。使用过GDI截屏与DfMirage,对两种屏幕截图方法做些比较和总结:

GDI截屏
 GDI(graphics device interface)是window提供的api函数,用于设备上下文绘制图形。sourceforge上有个屏幕录制开源程序Cam Studio,用的就是GDI截屏,可供参考。
使用步骤:
1、获取屏幕句柄
WINAPI函数::GetDesktopWindow()
2、获取屏幕DC
WINAPI函数:GetDC
3、通过BitBlt函数将屏幕图像复制到DC中
4、通过GetDIBits获取截图的位图数据
特点:简单易用,开发方便,但cpu占用率高、数据量大

DfMirage截屏
   开源项目TightVNC是应用DfMirage的一个例子,tightvnc-1.3.10支持DfMirage截屏,大家可以参考代码学习,最新版的tightvnc好像不支持DfMirage。
DfMirage是Windows NT操作系统家族的的视频驱动镜像技术,视频驱动镜像技术广泛采用于远程桌面应用程序,如NetMeeting, PC Anywhere, VNC, Webex等等。
相对于GDI屏幕抓取,镜像截屏是一个技术上很优越的方法,通过虚拟驱动,系统发往显卡的命令也发给虚拟驱动,在虚拟驱动中模拟出当前系统的显示内容。
DfMirage驱动程序将屏幕表面映射到的用户的应用程序的虚拟内存空间,DfMirage跟踪
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值