CN106339215A - 一种录制Windows屏幕时实时绘制图形的方法 - Google Patents
一种录制Windows屏幕时实时绘制图形的方法 Download PDFInfo
- Publication number
- CN106339215A CN106339215A CN201610678400.7A CN201610678400A CN106339215A CN 106339215 A CN106339215 A CN 106339215A CN 201610678400 A CN201610678400 A CN 201610678400A CN 106339215 A CN106339215 A CN 106339215A
- Authority
- CN
- China
- Prior art keywords
- screen
- mouse
- graph
- real
- windows
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04845—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种录制Windows屏幕时实时绘制图形的方法,包括如下步骤:(1)、在录屏过程中进入绘制图形过程,此时程序监视鼠标的光标位置及鼠标的按键的状态;(2)、根据选定的图形类型及鼠标的状态,创建出要绘制的图形,包括矩形、椭圆、直线、箭头、曲线、半透明蒙板、文字;(3)、将创建出来的图形显示到电脑屏幕上;(4)、获取同时包含电脑屏幕的背景及绘制的图形与图片;(5)、将获取到的图片转换为视频。本发明可以在显示所绘制图形的过程和结果时,不用遮挡当前演示和录制的屏幕区域,观察者能够看到当前屏幕背景的变化,于是更加真实和完整地显示了当前屏幕的内容。
Description
技术领域
本发明涉及一种Windows电脑录屏录制技术,具体是一种在录制屏幕的同时录制用鼠标进行的图形绘制的技术。
背景技术
在电脑屏幕上进行演示时,特别是要通过录屏软件将演示的操作录制成视频文件时,经常需要在演示的屏幕上进行一些图形标注,比如绘制矩形框、箭头等对重点内容进行突出显示。传统的录屏软件和技术对这个功能需求的解决方案是,在开始绘制图形的时候,截取一张录制区域(或演示区域)的图片,将其平铺在录制区域上,并在这个图片上画图。这样绘制的图像和绘制的过程就能被录制到或者演示到了。但这样的方式有一个明显的缺点就是绘制过程中,屏幕的变化是看不到的,因为真正的屏幕背景被这张图片给挡住了。所以这种传统的解决方案的屏幕不是“实时”显示的,无法反映出真正的屏幕内容,对录制和演示的效果都有负面影响,需要改进。
发明内容
本发明的目的在于提供一种录制Windows屏幕时实时绘制图形的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:
一种录制Windows屏幕时实时绘制图形的方法,包括如下步骤:(1)、在录屏过程中进入绘制图形过程,此时程序监视鼠标的光标位置及鼠标的按键的状态;(2)、根据选定的图形类型及鼠标的状态,创建出要绘制的图形,包括矩形、椭圆、直线、箭头、曲线、半透明蒙板、文字;(3)、将创建出来的图形显示到电脑屏幕上;(4)、获取同时包含电脑屏幕的背景及绘制的图形与图片;(5)、将获取到的图片转换为视频。
作为本发明的优选方案:步骤(1)是通过Windows系统的SetWindowsHookEx API函数向系统注册鼠标钩子来获取鼠标的光标位置及按钮状态。
作为本发明的优选方案:步骤(2)的图形创建中,需要将图形绘制到一个背景透明的32位Bitmap对象上,并根据步骤(1)获取的鼠标信息对图形位置、大小进行更新。
作为本发明的优选方案:步骤(3)的图形显示过程,是创建一个覆盖整个录制区域的透明窗体,该窗体具有WS_EX_LAYERED的扩展属性,通过Windows的UpdateLayeredWindowAPI函数来将步骤(2)中创建的图形显示到该窗口上。
作为本发明的优选方案:步骤(4)需要在规定时间间隔内重复地获取电脑屏幕及绘制的图形,以实现屏幕背景和图形在最终生成的视频中的实时显示。
与现有技术相比,本发明的有益效果是:本发明可以在显示所绘制图形的过程和结果时,不用遮挡当前演示和录制的屏幕区域,观察者能够看到当前屏幕背景的变化,于是更加真实和完整地显示了当前屏幕的内容。
附图说明
图1为录制屏幕时实时绘制图形的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,一种录制Windows屏幕时实时绘制图形的方法,包括如下步骤:(1)、在录屏过程中进入绘制图形过程,此时程序监视鼠标的光标位置及鼠标的按键的状态;(2)、根据选定的图形类型及鼠标的状态,创建出要绘制的图形,包括矩形、椭圆、直线、箭头、曲线、半透明蒙板、文字;(3)、将创建出来的图形显示到电脑屏幕上;(4)、获取同时包含电脑屏幕的背景及绘制的图形与图片;(5)、将获取到的图片转换为视频。
步骤(1)是通过Windows系统的SetWindowsHookEx API函数向系统注册鼠标钩子来获取鼠标的光标位置及按钮状态。
步骤(2)的图形创建中,需要将图形绘制到一个背景透明的32位Bitmap对象上,并根据步骤(1)获取的鼠标信息对图形位置、大小进行更新。
步骤(3)的图形显示过程,是创建一个覆盖整个录制区域的透明窗体,该窗体具有WS_EX_LAYERED的扩展属性,通过Windows的UpdateLayeredWindow API函数来将步骤(2)中创建的图形显示到该窗口上。
步骤(4)需要在规定时间间隔内重复地获取电脑屏幕及绘制的图形,以实现屏幕背景和图形在最终生成的视频中的实时显示。
本发明的工作原理是:一种录制Windows屏幕时实时绘制图形的方法,包括如下步骤:
(1)从在录屏过程中进入绘制图形过程,此时程序监视鼠标的光标位置及鼠标的按键的状态(按下、放开)。通过Windows系统的SetWindowsHookEx API函数,注册一个全局的鼠标钩子来监听鼠标事件。该事件的处理函数根据鼠标消息和鼠标位置,来进行下一步的处理。鼠标事件处理核心过程如下:
开始
当 鼠标消息为左键按下 ,执行以下操作:
开始绘制图形
当 鼠标消息为左键放开,执行以下操作:
结束绘制图形
如果 鼠标左键按下了且鼠标位置变化了,执行以下操作:
改变图形的大小和位置
结束
本技术可以独占或者非独立鼠标消息。如果要独占鼠标消息,在鼠标事件处理程序中不调用CallNextHookEx即可,这样可以在本次鼠标事件处理完成后,限制其它程序对鼠标事件的响应。
(2)根据选定的绘制图形类型及鼠标的状态,创建出要绘制的图形,包括矩形、椭圆、直线、箭头、曲线、半透明蒙板、文字等。具体的过程如下:
开始绘制图形:此时根据要绘制的图形,创建一个虚拟的图形对象,记录下该图形对象的起始位置(即鼠标左键按下的位置)。如果是要创建文字图形,此时可能通过创建一个文本输入框来让用户输入;并在再次点击左键时结束输入。
改变图形的大小和位置:鼠标的当前位置作为当前绘制的图形的终点位置生成图形路径并更新显示。不同图形的生成方式可能各不相同。矩形、椭圆、直线和箭头只需起始点和结束点就可以确定;曲线和半透明蒙板通过记录鼠标移动到的每一个点及设定的线条宽度来生成。
结束绘制图形:此时完成正在绘制的图形对象,记录该图形的终点位置(即鼠标左键放开的位置),从而确定该图形的形状、位置、大小等信息。
(3)将步骤(2)创建出来的图形显示到电脑屏幕上。这个过程主要分为以下两步:
将所有的图形绘制到内存中一个图片对象上,该图片对象必需是透明的,一般使用32位的、ARGB格式的Bitmap即可。该图片的大小与录制区域的大小相同。绘制过程如下:
开始
当 图片对象不存在时,执行如下操作:
创建图片对象
当 图片对象的尺寸与录制区域(或演示区域)的尺寸不同时:
释放原图片对象,创建新的图片对象
清空图片对象的内容(只剩下透明的背景)
对于 创建的每一个图形,执行如下操作:
将图形绘制到图片对象上
在屏幕上显示该图片
结束
这个过程中只在图片对象不存在或者图片对象的尺寸与录制区域的尺寸不同时新建,而不是每次都新建,会提升实际程序的运行效率。
通过一个透明的窗体,在屏幕上显示该图片。该窗体的位置和尺寸与录制区域的位置和尺寸一致。该窗口具有WS_EX_LAYERED的扩展属性,这个属性可让该窗体显示为此前绘制的图片。该窗口也具有WS_EX_TRANSPARENT的扩展属性,这个属性可让该窗口无视上面的鼠标操作,用户可以透过该窗体在屏幕上进行操作。
通过Windows系统的 UpdateLayeredWindow API函数来将该图片在该窗体上显示出来。由于图片在没有图形的部分是透明的,而且窗体本身是透明的、显示的是图片的内容,所以没有图片的部分最终也是透明的,可看到窗体后面的屏幕内容。同时该窗体仅作显示用,不影响用户操作,于是就实现了“实时”的图形绘制。
更新透明窗体是一个费时较多的过程,这里可以通过判断仅在图形有变化时更新窗体,提高程序的运行效率。
(4)获取同时包含电脑屏幕的背景及绘制的图形的图片。由于当前创建的图形都已经显示在屏幕上了,同时显示电脑中的其它操作和内容也能显示,可以通过定时截图来获取电脑屏幕背景和绘制的图形,截图的时间间隔为(1000/帧率)毫秒。为了不影响之前步骤的绘制图形的操作,优化程序性能,本步骤放到单独的进程或者线程中进行。具体过程如下:
开始
如果 处于录制状态,执行如下操作:
创建一个格式兼容的、尺寸与录制区域相同的位图
将屏幕内容复制到位图中
处理该位图,写入视频文件中
等待 截图时间间隔
重复截图过程
结束
(5)将获取到的图片转换为视频。通过指定的视频编码器,即可将图片转换为视频。由于这里可采用视频处理的一般通用技术,故本文中不详述。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。
Claims (5)
1.一种录制Windows屏幕时实时绘制图形的方法,其特征在于,包括如下步骤:(1)、在录屏过程中进入绘制图形过程,此时程序监视鼠标的光标位置及鼠标的按键的状态;(2)、根据选定的图形类型及鼠标的状态,创建出要绘制的图形,包括矩形、椭圆、直线、箭头、曲线、半透明蒙板、文字;(3)、将创建出来的图形显示到电脑屏幕上;(4)、获取同时包含电脑屏幕的背景及绘制的图形与图片;(5)、将获取到的图片转换为视频。
2.根据权利要求1所述的一种录制Windows屏幕时实时绘制图形的方法,其特征在于,步骤(1)是通过Windows系统的SetWindowsHookEx API函数向系统注册鼠标钩子来获取鼠标的光标位置及按钮状态。
3.根据权利要求1所述的一种录制Windows屏幕时实时绘制图形的方法,其特征在于,步骤(2)的图形创建中,需要将图形绘制到一个背景透明的32位Bitmap对象上,并根据步骤(1)获取的鼠标信息对图形位置、大小进行更新。
4.根据权利要求1所述的一种录制Windows屏幕时实时绘制图形的方法,其特征在于,步骤(3)的图形显示过程,是创建一个覆盖整个录制区域的透明窗体,该窗体具有WS_EX_LAYERED的扩展属性,通过Windows的UpdateLayeredWindow API函数来将步骤(2)中创建的图形显示到该窗口上。
5.根据权利要求1所述的一种录制Windows屏幕时实时绘制图形的方法,其特征在于,步骤(4)需要在规定时间间隔内重复地获取电脑屏幕及绘制的图形,以实现屏幕背景和图形在最终生成的视频中的实时显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610678400.7A CN106339215A (zh) | 2016-08-17 | 2016-08-17 | 一种录制Windows屏幕时实时绘制图形的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610678400.7A CN106339215A (zh) | 2016-08-17 | 2016-08-17 | 一种录制Windows屏幕时实时绘制图形的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106339215A true CN106339215A (zh) | 2017-01-18 |
Family
ID=57825120
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610678400.7A Pending CN106339215A (zh) | 2016-08-17 | 2016-08-17 | 一种录制Windows屏幕时实时绘制图形的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106339215A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064523A (zh) * | 2018-08-03 | 2018-12-21 | 上海熙菱信息技术有限公司 | 一种基于多元化视频图像高效自适应的绘制方法 |
CN113487704A (zh) * | 2021-06-25 | 2021-10-08 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030080973A1 (en) * | 1996-10-15 | 2003-05-01 | Nikon Corporation | Image recording and replay apparatus |
CN102109949A (zh) * | 2009-12-29 | 2011-06-29 | 鸿富锦精密工业(深圳)有限公司 | 可记录笔记的电子书阅读器和记录笔记的方法 |
CN103077026A (zh) * | 2012-12-28 | 2013-05-01 | 锐达互动科技股份有限公司 | 一种在操作系统的桌面环境下进行书写的方法 |
CN104360788A (zh) * | 2014-10-20 | 2015-02-18 | 深圳市天时通科技有限公司 | 透明标注方法和桌面书写控制方法 |
CN105447900A (zh) * | 2014-07-04 | 2016-03-30 | 北京新媒传信科技有限公司 | 一种录制动画的方法和装置 |
-
2016
- 2016-08-17 CN CN201610678400.7A patent/CN106339215A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030080973A1 (en) * | 1996-10-15 | 2003-05-01 | Nikon Corporation | Image recording and replay apparatus |
CN102109949A (zh) * | 2009-12-29 | 2011-06-29 | 鸿富锦精密工业(深圳)有限公司 | 可记录笔记的电子书阅读器和记录笔记的方法 |
CN103077026A (zh) * | 2012-12-28 | 2013-05-01 | 锐达互动科技股份有限公司 | 一种在操作系统的桌面环境下进行书写的方法 |
CN105447900A (zh) * | 2014-07-04 | 2016-03-30 | 北京新媒传信科技有限公司 | 一种录制动画的方法和装置 |
CN104360788A (zh) * | 2014-10-20 | 2015-02-18 | 深圳市天时通科技有限公司 | 透明标注方法和桌面书写控制方法 |
Non-Patent Citations (3)
Title |
---|
张志强,张博文: "《Visual C++高级编程技术》", 31 March 2016, 北京:机械工业出版社 * |
徐保民 等: "《计算机支持的协同设计》", 30 September 2007, 电子科技大学出版社 * |
杨建昌: "《GDI+高级编程》", 31 January 2010, 北京:清华大学出版社 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109064523A (zh) * | 2018-08-03 | 2018-12-21 | 上海熙菱信息技术有限公司 | 一种基于多元化视频图像高效自适应的绘制方法 |
CN113487704A (zh) * | 2021-06-25 | 2021-10-08 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
CN113487704B (zh) * | 2021-06-25 | 2024-01-30 | 山东齐鲁数通科技有限公司 | 一种燕尾箭头标的绘制方法、装置、存储介质及终端设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106062705B (zh) | 跨平台渲染引擎 | |
CN106547534B (zh) | 展示页面扩展点的装置及方法 | |
US8918758B2 (en) | Systems and methods for storing object and action data during media content development | |
CN110096277A (zh) | 一种动态页面展示方法、装置、电子设备及存储介质 | |
US20130283198A1 (en) | Display controlling apparatus | |
CN109375980B (zh) | 基于Andriod系统的触控绘图方法 | |
WO2017000898A1 (zh) | 软件图标显示方法和装置 | |
WO2016099317A1 (ru) | Способ и система визуального управления данными | |
CN102739983A (zh) | 一种实现半透明效果的方法及系统 | |
CN112272109A (zh) | 一种网络拓扑图生成方法、设备及系统 | |
CN103019738A (zh) | 一种界面可自定义的数控系统及实现方法 | |
CN105468573A (zh) | 可配置式图表应用系统 | |
CN102483682A (zh) | 设计辅助装置、设计辅助程序、设计辅助方法以及集成电路 | |
CN106855772A (zh) | 一种信息展示方法及装置 | |
CN106339215A (zh) | 一种录制Windows屏幕时实时绘制图形的方法 | |
CN102591646B (zh) | 一种同时缩放多个wpf窗体的方法和装置 | |
CN110543370B (zh) | 一种重写ue4渲染引擎底层及其通信机制的方法 | |
CN113407183A (zh) | 界面生成方法、装置、设备及存储介质 | |
Gonzalez-Sanchez et al. | iPhone application development | |
EP2602712A1 (en) | Program-producing device and image control system | |
CN107391159A (zh) | 一种智能电视ui文本框的文字实现方法及装置 | |
CN106383719A (zh) | 一种显示控制方法及移动终端 | |
US20200150859A1 (en) | Method of operating widget on an electronic device | |
JP6512964B2 (ja) | 端末、画像判定システム、画像判定方法およびプログラム | |
KR20180047200A (ko) | 스프라이트 그래픽 제작 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170118 |