掌桥专利:专业的专利平台
掌桥专利
首页

一种重复截图方法及装置

文献发布时间:2023-06-19 12:02:28


一种重复截图方法及装置

技术领域

本发明涉及计算机技术领域,具体涉及一种重复截图方法及装置。

背景技术

目前,截图功能是一项非常实用的功能,Windows系统自带全屏截图的功能键,部分软件提供截图以及对截图的编辑功能。

现有技术中,Windows系统的Print Screen键只提供全屏截图,不能对截图的区域进行选择,截图之后还需要进行剪裁。对于部分软件提供的截图功能,可以对需要截图的区域进行选择,完成一次截图需要经过截图位置选择,截图和存盘这几个操作流程。但是针对屏幕中相同位置进行相同尺寸的重复截图,是目前业界亟待解决的课题。

发明内容

针对现有技术中的问题,本发明实施例提供一种重复截图方法及装置,能够至少部分地解决现有技术中存在的问题。

一方面,本发明提出一种重复截图方法,包括:

启动截图程序,并获得截图区域的坐标信息;

根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

另一方面,本发明提供一种重复截图装置,包括:

启动模块,用于启动截图程序,并获得截图区域的坐标信息;

截图模块,用于根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

再一方面,本发明提供一种存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述任一实施例所述重复截图方法的步骤。

本发明实施例提供的重复截图方法及装置,能够启动截图程序,并获得截图区域的坐标信息,根据重复接收到的截图指令对截图区域进行截图操作,获得具有相同尺寸的截图,提高了截取相同尺寸的图片的截图效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明一实施例提供的重复截图方法的流程示意图。

图2是本发明另一实施例提供的重复截图方法的流程示意图。

图3是本发明又一实施例提供的重复截图方法的流程示意图。

图4是本发明一实施例提供的重复截图装置的结构示意图。

图5是本发明另一实施例提供的重复截图装置的结构示意图。

图6是本发明又一实施例提供的重复截图装置的结构示意图。

图7是本发明再一实施例提供的重复截图装置的结构示意图。

图8是本发明还一实施例提供的重复截图装置的结构示意图。

图9是本发明一实施例提供的电子设备的实体结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

为了便于理解本申请提供的技术方案,下面先对本申请技术方案的研究背景进行简单说明。在日常电子化办公时经常遇到截图的需求,有时会遇到对相同位置进行重复截图,获得相同尺寸的截图图片,因此,本发明实施例提出一种重复截图方法,以提高对相同位置重复截图的效率。

下面以计算机作为执行主体为例,来说明本发明实施例提供的重复截图方法的实现过程。可理解的是本发明实施例提供的重复截图方法的执行主体包括但不限于计算机

图1是本发明一实施例提供的重复截图方法的流程示意图,如图1所示,本发明实施例提供的重复截图方法,包括:

S101、启动截图程序,并获得截图区域的坐标信息;

具体地,用户可以输入启动命令或者点击截图程序对应的启动图标,计算机通过执行上述启动命令或者检测到对启动图标的点击操作,启动截图程序。用户可以激活需要截图的窗口,并在激活的窗口中选定区域,所述计算机能够检测到用户选定的区域,获取选定区域的坐标信息作为截图区域的坐标信息。其中,为了防止截图区域的坐标信息出错,可以将坐标信息提供给用户确认,在用户确认之后,所述计算机将选定区域的坐标信息作为截图区域的坐标信息。

例如,用户A通过自己的台式机B进行截图,台式机B安装有Windows操作系统。用户A在CMD窗口输入“python jietu.py”启动程序名称为jietu.py的截图程序,该截图程序是通过python语言编写的。在jietu.py截图程序启动之后,会加载Python的Pynput、PIL、sys、win32gui、win32ui、win32api、win32con等模块,调用事件监控器对键盘操作和鼠标操作进行监控。用户A在台式机上打开浏览器,访问目标网页,打开目标网页的窗口,目标网页的窗口即需要截图的窗口。用户A用鼠标在目标网页的窗口中选择需要截图的区域,可以在需要截图的区域的左上角和右下角分别单击一下,台式机B通过事件监控器可以捕捉到左上角的单击操作和右下角的单击操作,将获得的坐标信息显示到CMD窗口上,用户A查看到CMD窗口显示的坐标信息,可以在CMD窗口输入“Python jietu.py坐标信息图片保存路径信息”确认截图区域的坐标信息。台式机B可以获得上述坐标信息作为所述截图区域的坐标信息。

S102、根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

具体地,用户可以输入截图指令或者操作截图快捷键触发截图指令,所述计算机接收到所述截图指令之后,会对所述截图区域进行截图操作,即根据所述截图区域的坐标信息对当前窗口进行截图,然后将截图保存起来。在上一次截图之后,用户可以更换当前窗口,重新触发截图指令,所述计算机接收到所述截图指令之后,会重新对所述截图区域进行截图操作。用户可以不断更换当前窗口,重新触发截图指令,使所述计算机重复进行截图操作,实现对不同窗口的相同区域进行截图,并且所有的截图具有相同的尺寸。在完成截图之后,用户可以输入退出截图指令或者操作退出截图快捷键触发退出截图指令,所述计算机接收到所述截图指令之后会退出截图程序。

本发明实施例提供的重复截图方法,能够启动截图程序,并获得截图区域的坐标信息,根据重复接收到的截图指令对截图区域进行截图操作,获得具有相同尺寸的截图,提高了截取相同尺寸的图片的截图效率。

图2是本发明另一实施例提供的重复截图方法的流程示意图,如图2所示,在上述各实施例的基础上,进一步地,所述根据所述截图区域的坐标信息对当前窗口进行截图并保存包括:

S201、获取所述当前窗口的设备上下文,并根据所述当前窗口的设备上下文获取对应的设备描述表;

具体地,所述计算机在接收到所述截图指令之后,可以获取当前窗口的设备上下文(Device Context,简称DC),然后根据所述当前窗口的DC,获取与当前窗口的DC对应的设备描述表(MFCDC)。

S202、根据所述设备描述表创建可兼容设备上下文;

具体地,所述计算机在获得相关内存DC之后,可以根据所述MFCDC创建可兼容DC,可兼容DC是一个虚拟的DC,用于后续加载位图对象以保存图片。其中,可兼容DC由CreateCompatibleDC()函数创建。

S203、根据所述截图区域的坐标信息将所述截图区域的像素阵列拷贝到所述可兼容设备上下文中载入的位图对象中;

具体地,所述计算机根据所述截图区域的坐标信息,将所述截图区域的像素阵列拷贝到所述可兼容DC中载入的位图对象中。

具体可以调用BitBlt函数将所述截图区域的像素阵列拷贝到所述兼容的DC中载入的位图对象中。

S204、将所述可兼容设备上下文中的所述截图区域的像素阵列保存为图片文件。

具体地,所述计算机从所述可兼容DC中获取所述截图区域的像素阵列,并保存为图片文件。其中,图片文件的文件名可以根据当时日期时间字符串确定。

在上述各实施例的基础上,进一步地,本发明实施例提供的重复截图方法还包括:

根据预设存储目录保存所述图片文件。

具体地,可以预先设置保存是图片文件的存储目录,在保存所述图片文件时,将所述图片文件保存到预设存储目录中。

例如,利用Python语言,可以通过语句def capturer(savehere="d:\\"),设置将图片文件保存到d盘根目录。

在上述各实施例的基础上,进一步地,所述图片文件为位图文件。

具体地,可以调用位图对象的SaveBitmapFile函数把所述可兼容DC中所述截图区域的像素阵列保存为位图文件。

图3是本发明又一实施例提供的重复截图方法的流程示意图,如图3所示,在上述各实施例的基础上,进一步地,所述启动截图程序,并获得截图区域的坐标信息包括:

S301、启动所述截图程序并调用事件监控器;

具体地,所述计算机启动所述截图程序之后,会创建事件监控器。其中,所述事件监控器包括键盘按压及抬起动作的监控器,和鼠标操作的监控器。所述鼠标操作包括但不限于单击、移动、滚动等。

例如,所述计算机在启动所述截图程序之后,会通过keyboard.listener(on_press=on_press,on_release=on_release)创建键盘监控器,通过mouse.listener(on_click=on_click,...)创建鼠标监控器。通过在on_press、on_release、on_click等回调函数中编写业务代码实现对键盘鼠标操作的监控。

S302、根据检测到的第一点击操作和第二点击操作,获得所述截图区域的坐标信息。

具体地,用户会激活需要被截图的窗口,然后通过第一点击操作在激活的窗口中指定所述截图区域的左上角,并通过第二点击操作在激活的窗口中指定所述截图区域的右下角,第一点和第二点所确定的矩形区域,即为所述截图区域。所述计算机可以获取第一点的坐标和第二点的坐标作为所述截图区域的坐标信息。其中,所述第一点击操作和第二点击操作根据实际需要进行设置,本发明实施例不做限定。

例如,所述第一点击操作和第二点击操作都是连续点击三次鼠标左键。所述计算机检测到用户对激活窗口的第一次连续点击三次鼠标左键,会记录点击的位置坐标作为第一点的坐标,检测到用户对激活窗口的第二次连续点击三次鼠标左键,会记录点击的位置坐标作为第二点的坐标,从而获得所述截图区域的坐标信息。

例如,所述第一点击操作为连续点击三次鼠标左键,第二点击操作为连续点击两次鼠标右键。所述计算机检测到用户对激活窗口连续点击三次鼠标左键,会记录点击的位置坐标作为第一点的坐标,检测到用户对激活窗口连续点击两次鼠标右键,会记录点击的位置坐标作为第二点的坐标,从而获得所述截图区域的坐标信息。

在上述各实施例的基础上,进一步地,所述截图指令通过快捷键触发。通过快捷键触发所述截图指令能够方便用户操作,提高截图的效率。

例如,设置组合键Ctrl+i,为触发截图指令的快捷键。

在上述各实施例的基础上,进一步地,本发明实施例提供的重复截图方法还包括:

若接收到退出截图指令,则退出所述截图程序。

具体地,用户可以输入退出截图指令或者操作退出截图快捷键触发退出截图指令,所述计算机接收到所述截图指令之后会退出截图程序。

例如,可以设置ESC键作为退出截图指令的快捷键。

本发明实施例提供的重复截图方法,可以使用Python语言编程实现,通过加载Pynput、PIL、sys、win32gui、win32ui、win32api、win32con模块,调用模块中相关功能函数,实现从捕捉屏幕指定区域,到存入指定路径的快捷截图过程。例如,在截图程序中定义capturer函数,def capturer(argw=0,argh=0,argtopleft=(0,0),savehere="d:\\"),参数argw表示截图区域的宽度,参数argh表示截图区域的高度,参数argtopleft表示截图区域的左上角端点的坐标,savehere指示图片保存的位置。可理解的是,如果采用Python语言实现程序,需要预先安装Python解释系统。

图4是本发明一实施例提供的重复截图装置的结构示意图,如图4所示,本发明实施例提供的重复截图装置包括启动模块401和截图模块402,其中:

启动模块401用于启动截图程序,并获得截图区域的坐标信息;截图模块402用于根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

具体地,用户可以输入启动命令或者点击截图程序对应的启动图标,启动模块401通过执行上述启动命令或者检测到对启动图标的点击操作,启动截图程序。用户可以激活需要截图的窗口,并在激活的窗口中选定区域,启动模块401能够检测到用户选定的区域,获取选定区域的坐标信息作为截图区域的坐标信息。其中,为了防止截图区域的坐标信息出错,可以将坐标信息提供给用户确认,在用户确认之后,所述计算机将选定区域的坐标信息作为截图区域的坐标信息。

用户可以输入截图指令或者操作截图快捷键触发截图指令,截图模块402接收到所述截图指令之后,会对所述截图区域进行截图操作,即根据所述截图区域的坐标信息对当前窗口进行截图,然后将截图保存起来。在上一次截图之后,用户可以更换当前窗口,重新触发截图指令,截图模块402接收到所述截图指令之后,会重新对所述截图区域进行截图操作。用户可以不断更换当前窗口,重新触发截图指令,使截图模块402重复进行截图操作,实现对不同窗口的相同区域进行截图,并且所有的截图具有相同的尺寸。在完成截图之后,用户可以输入退出截图指令或者操作退出截图快捷键触发退出截图指令,截图模块402接收到所述截图指令之后会退出截图程序。

本发明实施例提供的重复截图装置,能够启动截图程序,并获得截图区域的坐标信息,根据重复接收到的截图指令对截图区域进行截图操作,获得具有相同尺寸的截图,提高了截取相同尺寸的图片的截图效率。

图5是本发明另一实施例提供的重复截图装置的结构示意图,如图5所示,在上述各实施例的基础上,进一步地,截图模块402包括获取单元4021、创建单元4022、拷贝单元4023和保存单元4024,其中:

获取单元4021用于获取所述当前窗口的设备上下文,并根据所述当前窗口的设备上下文获取对应的设备描述表;创建单元4022根据所述设备描述表创建可兼容设备上下文;拷贝单元4023根据所述截图区域的坐标信息将所述截图区域的像素阵列拷贝到所述可兼容设备上下文中载入的位图对象中;保存单元4024将所述可兼容设备上下文中的所述截图区域的像素阵列保存为图片文件。

具体地,在接收到所述截图指令之后,获取单元4021可以获取当前窗口的设备上下文(Device Context,简称DC),然后根据所述当前窗口的DC,获取相与当前窗口的DC对应的设备描述表(MFCDC)。

在获得相关内存DC之后,创建单元4022可以根据所述MFCDC创建可兼容DC,可兼容DC是一个虚拟的DC,用于后续保存图片。其中,可兼容DC由CreateCompatibleDC()函数创建。

拷贝单元4023根据所述截图区域的坐标信息,将所述截图区域的像素阵列拷贝到所述可兼容DC中载入的位图对象中。

保存单元4024从所述可兼容DC中获取所述截图区域的像素阵列,并保存为图片文件。其中,图片文件的文件名可以根据当时日期时间字符串确定。

图6是本发明又一实施例提供的重复截图装置的结构示意图,如图6所示,本发明实施例提供的重复截图装置还包括存储模块403,其中:

存储模块403用于根据预设存储目录保存所述图片文件。

在上述各实施例的基础上,进一步地,所述图片文件为位图文件。

图7是本发明再一实施例提供的重复截图装置的结构示意图,如图7所示,在上述各实施例的基础上,进一步地,启动模块401包括启动单元4011和获得单元4012,其中:

启动单元4011启动所述截图程序调用事件监控器;获得单元4012根据检测到对活动窗口的第一点击操作和第二点击操作,获得所述截图区域的坐标信息。

具体地,启动单元4011启动所述截图程序之后,会调用事件监控器。其中,所述事件监控器包括键盘按压及抬起动作的监控器,和鼠标操作的监控器。所述鼠标操作包括但不限于单击、移动、滚动等。

用户会激活需要件截图的窗口,然后通过第一点击操作在激活的窗口中指定所述截图区域的第一点,并通过第二点击操作在激活的窗口中指定所述截图区域的第二点,第一点和第二点所确定的矩形区域,即为所述截图区域。获得单元4012可以获取第一点的坐标和第二点的坐标作为所述截图区域的坐标信息。其中,所述第一点击操作和第二点击操作根据实际需要进行设置,本发明实施例不做限定。

在上述各实施例的基础上,进一步地,所述截图指令通过快捷键触发。

图8是本发明还一实施例提供的重复截图装置的结构示意图,如图8所示,在上述各实施例的基础上,进一步地,本发明实施例提供的重复截图装置还包括退出模块404,其中:

退出模块404用于在接收到退出截图指令之后,退出所述截图程序。

具体地,用户可以输入退出截图指令或者操作退出截图快捷键触发退出截图指令,退出模块404接收到所述截图指令之后会退出截图程序。

本发明实施例提供的装置的实施例具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。

需要说明的是,本发明实施例提供的重复截图方法及装置可用于金融领域,也可用于除金融领域之外的任意技术领域,本发明实施例对重复截图方法及装置的应用领域不做限定。

图9是本发明一实施例提供的电子设备的实体结构示意图,如图9所示,该电子设备可以包括:处理器(processor)901、通信接口(Communications Interface)902、存储器(memory)903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信。处理器901可以调用存储器903中的逻辑指令,以执行如下方法:启动截图程序,并获得截图区域的坐标信息;根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

此外,上述的存储器903中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:启动截图程序,并获得截图区域的坐标信息;根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

本实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储计算机程序,所述计算机程序使所述计算机执行上述各方法实施例所提供的方法,例如包括:启动截图程序,并获得截图区域的坐标信息;根据重复接收到的截图指令对所述截图区域进行截图操作;其中,每次截图操作根据所述截图区域的坐标信息对当前窗口进行截图并保存。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

相关技术
  • 一种重复截图方法及装置
  • 一种截图方法以及截图装置
技术分类

06120113148999