[发明专利]一种基于gdi/gdi+窗口被覆盖的录制方法及装置有效
申请号: | 201611109584.1 | 申请日: | 2016-12-02 |
公开(公告)号: | CN106775690B | 公开(公告)日: | 2020-10-09 |
发明(设计)人: | 罗婷 | 申请(专利权)人: | 广东威创视讯科技股份有限公司 |
主分类号: | G06F9/451 | 分类号: | G06F9/451 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 张春水;唐京桥 |
地址: | 510670 广东省广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 gdi 窗口 被覆 录制 方法 装置 | ||
本发明实施例提供的一种基于gdi/gdi+窗口被覆盖的录制方法及装置,实现了当窗口被覆盖时,就会捕捉到该窗口上面的其它窗口内容,这样就完全正确的录制到指定窗口的内容,解决了对覆盖或移到屏幕外的窗口进行录制的技术问题。本发明实施例基于gdi/gdi+窗口被覆盖的录制方法包括:获取到屏幕设备的屏幕或窗口录制指令;根据屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口;创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将位图与内存区域HDC绑定;将待录制的被覆盖或移到屏幕外的窗口通过屏幕设备传送到位图中。
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于gdi/gdi+窗口被覆盖的录制方法及装置。
背景技术
计算机屏幕图像的截取在屏幕的录制、计算机远程控制以及多媒体教学软件中都是关键技术,基于Windows操作系统有多种截屏方法,研究的重点集中在如何快速有效的截取DBI格式的屏幕图形数据。网络上屏幕录制的实现方案有很多,其中最常用的是gdi方法。在gdi方案中,对应用窗口进行录制时,如果该窗口被覆盖,通常在这种情况下没有进行特殊处理。但是,有很多应用场景并不需要屏幕录制,而只需要对某个窗口进行录制,此时,对覆盖或移到屏幕外的窗口进行录制是本领域技术人员亟待解决的技术问题。
发明内容
本发明实施例提供的一种基于gdi/gdi+窗口被覆盖的录制方法及装置,实现了当窗口被覆盖时,就会捕捉到该窗口上面的其它窗口内容,这样就完全正确的录制到指定窗口的内容,解决了对覆盖或移到屏幕外的窗口进行录制的技术问题。
本发明实施例提供的一种基于gdi/gdi+窗口被覆盖的录制方法,包括:
获取到屏幕设备的屏幕或窗口录制指令;
根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口;
创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将所述位图与所述内存区域HDC绑定;
将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中。
优选地,根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口具体包括:
调用GetWindowDC(NULL)获取所述待录制的被覆盖或移到屏幕外的窗口dc。
优选地,创建与屏幕设备兼容的内存区域HDC,并创建对应的位图将所述位图与所述内存区域HDC绑定具体包括:
调用CreateCompatibleDC创建与屏幕设备兼容的内存区域HDC;
调用CreateCompatibleBitmap创建相关位图,调用SelectObject把刚创建的位图与内存区域HDC绑定。
优选地,将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中具体包括:
调用BitBlt把屏幕设备传到所述位图中,是对内存dc保存所述待录制的被覆盖或移到屏幕外的窗口的内容。
优选地,将所述待录制的被覆盖或移到屏幕外的窗口通过所述屏幕设备传送到所述位图中具体包括:
判断所述待录制的被覆盖或移到屏幕外的窗口是否为静态窗口,若是,则不再截屏所述静态窗口,采用覆盖前的窗口数据作为所述待录制的被覆盖或移到屏幕外的窗口,若否,则调用函数PrintWindow截图所述待录制的被覆盖或移到屏幕外的窗口。
本发明实施例提供的一种基于gdi/gdi+窗口被覆盖的录制装置,包括:
获取单元,用于获取到屏幕设备的屏幕或窗口录制指令;
确定单元,用于根据所述屏幕或窗口录制指令确定待录制的被覆盖或移到屏幕外的窗口;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东威创视讯科技股份有限公司,未经广东威创视讯科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201611109584.1/2.html,转载请声明来源钻瓜专利网。