一种动态图片截取方法技术

技术编号:2842511 阅读:345 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种动态图片截取方法,用以解决现有技术中存在用户不能截取并保存动态图片的问题。本发明专利技术利用Windows的钩子机制获取用户的鼠标消息确定所需截取的矩形区域,截取并记录、显示、传送当前矩形区域的动态图片信息。应用本发明专利技术,用户不但可以进行普通文本消息的交流沟通,而且在聊天过程中可以截取网页或在其他地方看到的动态图片,单独发送或者合并文本与动态图片一起发送,极大地丰富用户间的沟通体验,让自己的好友随时与自己分享所看到的有趣的动态图片内容,为即时通信用户带来良好的用户体验。

【技术实现步骤摘要】

本专利技术涉及计算机技术,尤其涉及。
技术介绍
随着信息量的急速增加和人们生活节奏的加快,网络为人们提供了一种极为便利和快捷的信息交流方式。在网络越来越普及的同时,各种类型的即时通信工具(如QQ、TM、MSN等)也已成为用户必不可少的软件工具,不但被利用在用户的工作生活中,同时也大量使用在用户的业余生活中。通过IM软件用户可以实现与联系人即时有效的沟通,在用户与好友联系中,不但需要普通文本的交流沟通,同样也需要丰富的沟通方式,利用自定义表情以及各种有趣的图片的传输都极大地丰富了广大网民之间的沟通的趣味性,如现有IM软件中都出现了自定义表情以及图片的发送传递功能,通过这一功能,用户可以编辑各种图文混排的交流方式,使得用户之间的交流也更加的有趣,进一步满足了用户的个性化需求。在现有技术中,图片的截取流程如图1所示,循环获取用户的鼠标点击消息并根据用户的鼠标点击消息判断是否需要截取屏幕,若需要则获取用户的鼠标左键Up消息和Down消息确定需要截取的矩形区域,建立与上述矩形大小一致的位图结构并利用Windows剪切板把当前位置矩形区域的屏幕数据复制到上述位图结构进行保存并传送。上述技术方案在截取图片时,整个屏幕处于静止状态,用户通过鼠标选择一个区域再双击保存当前区域中的图片,所保存的图片也是一种静态的图片;但是随着即时通信技术的发展和普及,用户在某些时候需要截取并保存动态图片,如用户希望把在网页上看到的某个动态图片进行屏幕截取并保存,或者把好友的动态的QQ秀通过屏幕截取进行保存等。
技术实现思路
本专利技术提供,用以解决现有技术中存在用户不能截取并保存动态图片的问题。本专利技术的包括,包括循环获取用户的鼠标点击消息并判断鼠标是否在截屏按钮矩形区域,还包括步骤A、判断所需截取的矩形区域是否包含动态图片,若是,执行步骤B,否则,截取静态图片并保存;B、获取当前矩形区域的动态图片信息,根据所获取的动态图片信息建立位图结构链表并记录所在矩形区域动态图片信息;及C、遍历位图结构链表,保存并显示动态图片信息。所述步骤A前还包括获取用户的鼠标左键Up消息和Down消息,并根据所获取的鼠标左键Up消息和Down消息确定需要截取的矩形区域的步骤。所述步骤B中的动态图片信息包括动态图片的帧数信息。所述步骤B后还包括获取当前鼠标消息并根据所获取的鼠标消息判断是否取消截取动态图片的步骤。所述步骤C还包括遍历位图结构链表,以固定格式写入剪切板并按照序列方式保存的步骤。所述步骤C还包括获取窗口句柄数据,根据窗口句柄数据得到具体窗口对象,并根据窗口对象和剪切板按照固定格式进行对应复制生成图片序列链表的步骤。所述步骤C还包括获取矩形大小数据,根据当前的设备上下文在内存中生成与当前设备兼容的显示上下文,遍历图片序列链表,并把图片序列链表中的字节流写入显示上下文的步骤。所述步骤C还包括根据API函数生成临时文件句柄,对显示上下文中的数据字节流进行装载并保存至临时文件句柄的步骤。所述步骤C还包括组合临时文件句柄中的图片文件帧序列,按照图片格式生成动态图片格式图片,利用图片装载模块装载动态图片至指定窗口对象并显示的步骤。所述步骤C还包括按照指定路径保存或发送动态图片的步骤。本专利技术有益效果如下应用本专利技术的,用户不但可以进行普通文本消息的交流沟通,而且在聊天过程中可以截取网页或在其他地方看到的动态图片,单独发送或者合并文本与动态图片一起发送,极大地丰富用户间的沟通体验,让自己的好友随时与自己分享所看到的有趣的动态图片内容,为即时通信用户带来良好的用户体验。附图说明图1为现有技术中图片截取方法的流程图;图2为本专利技术的的流程图。具体实施例方式本专利技术针对现有技术的缺陷,提出能够使计算机终端可以进行动态图片截取并保存的方法,下面将结合附图对本专利技术的主要实现原理及其具体实施方式进行详细的阐述。请参照图2,该图为本专利技术的的流程图,其主要实现过程如下步骤S21、确定需要截取的矩形区域;利用Windows的钩子机制获取用户的鼠标左键Up消息和Down消息,并根据鼠标左键Up消息和Down消息确定需要截取的矩形区域;所述鼠标左键Up消息包括当前鼠标在相对屏幕左上角的横坐标和纵坐标数值;所述鼠标左键Down消息包括当前鼠标在相对屏幕右下角的横坐标和纵坐标数值。步骤S22、判断上述需要截取的矩形区域里是否包含动态图片;利用Windows的设备上下文(Device Context,DC)的应用程序接口(Application Program Interface,API)函数,根据当前矩形所在屏幕区域是否包括不断变化的象素数据判断当前所在矩形区域中是否包含动态图片;若当前所在矩形屏幕区域不包括动态图片,则执行步骤S23,建立与上述矩形大小一致的位图结构并利用Windows剪切板把当前位置矩形区域的屏幕数据复制到上述位图结构进行保存并传送;步骤S24、截取动态图片;若当前所在矩形屏幕区域包括动态图片,利用Windows的设备上下文的API函数获取当前矩形区域动态图片信息,并根据所获取的动态图片信息建立位图结构链表,记录动态图片信息;所述的动态图片信息包括动态图片的帧数信息;所述的位图结构链表是根据动态图片的帧数信息在内存中建立,用于记录动态图片的数据字节信息,位图结构链表中的元素与动态图片帧一一对应,每一元素记录对应帧的数据字节信息;步骤S25、判断是否取消截取动态图片;利用Windows的钩子机制捕获当前鼠标消息,根据所捕获的当前鼠标消息的位置数据判断鼠标是否在所需截取的矩形区域,如果当前鼠标不在所需截取的矩形区域,则执行步骤S32,取消截取动态图片,并删除步骤S24建立的位图结构链表;如果当前鼠标在所需截取的矩形区域,则执行步骤S26;步骤S26,利用Windows的剪切板的API函数遍历位图结构链表,以固定格式写入剪切板并按照序列方式保存;步骤S27,利用Windows的窗口的API函数获取窗口句柄数据,根据窗口句柄数据得到具体窗口对象,并根据窗口对象和剪切板按照固定格式进行对应复制生成图片序列链表;步骤S28,获取矩形大小数据,根据当前的设备上下文在内存中生成与当前设备兼容的显示上下文,遍历步骤S27生成的图片序列链表,并把图片序列链表中的字节流写入显示上下文;所述显示上下文是根据当前的设备上下文在内存中生成的与当前设备兼容的设备上下文;步骤S29,利用Windows文件的API函数生成临时文件句柄,利用Windows的IPicture接口函数对显示上下文中的数据字节流进行装载并保存至临时文件句柄;步骤30,组合临时文件句柄中的图片文件帧序列,按照图片格式生成动态图片格式图片,利用图片装载模块装载动态图片至指定窗口对象并显示;步骤31,按照指定路径保存或发送动态图片的步骤。显然,本领域的技术人员可以对本专利技术进行各种改动和变型而不脱离本专利技术的精神和范围。这样,倘若本专利技术的这些修改和变型属于本专利技术权利要求及其等同技术的范围之内,则本专利技术也意图包含这些改动和变型在内。权利要求1.,包括循环获取用户的鼠标点击消息并判断鼠标是否在截屏按钮矩形区域,其特征在于,还包括步骤A、判断所需截取的矩形区域是否包含动态图片,若是,执行步骤B,否则,截取静态图片并保存;B、获取当前矩形区域的动本文档来自技高网...

【技术保护点】
一种动态图片截取方法,包括循环获取用户的鼠标点击消息并判断鼠标是否在截屏按钮矩形区域,其特征在于,还包括步骤:    A、判断所需截取的矩形区域是否包含动态图片,若是,执行步骤B,否则,截取静态图片并保存;    B、获取当前矩形区域的动态图片信息,根据所获取的动态图片信息建立位图结构链表并记录所在矩形区域动态图片信息;及    C、遍历位图结构链表,保存并显示动态图片信息。

【技术特征摘要】

【专利技术属性】
技术研发人员:李斌
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1