基于图片化实现电子幻灯片多终端动画协同浏览的方法
技术领域
本发明属于在线直播、计算机图形图像处理领域,PPT电子幻灯片多终端动画协同浏览应用,提供一种非常便捷的技术方法,在满足视觉效果的情况下最大化减少数据传输量,有效节省带宽,应用场景比较广泛。
背景技术
PPT电子幻灯片,在商务、教学、培训等诸多领域有着广泛应用;目前非常火的在线直播领域,也有着普遍运用,实现多人远程实时互动浏览。在线直播中,一般有如下几种方法来实现多人远程实时互动浏览:
第一种方式是主讲端将PPT原始文档文件以文件共享的方式传到服务器,然后每个客户端下载PPT原始文档文件,接着在本地通过加载PPT浏览插件(一般由微软提供或者使用商业插件)或者程序自己解析PPT文件格式来完成渲染PPT内容。这种方法,优点是可以最大化限度地保持渲染效果与PowerPoint里直接打开基本一致或者接近。但缺点也显而易见,就是需要安装插件或者通过非常复杂的程序来完成对PPT文件格式的解析。如果要实现多终端(如PC、iOS、安卓、Mac等)同时能使用,对插件就提出了非常高的要求,要满足所有终端平台的运行要求,目前这样的插件非常难找。而通过PPT文件格式的解析完成渲染,就涉及了PPT文件格式的复杂性、PPT文件格式的升级和多版本、移动终端在性能上能否满足如此复杂运算等问题。
第二种方式是主讲端将PPT文件通过iSpring、HTML5Point等商业软件,把PPT文件转换成Flash或者HTML5的格式,然后把数据打包(一般是Zip格式)通过网络传输到其他远程互动的参与者,远程互动的参与者再通过本地浏览器内核来完成渲染。这种方式的优点是可以实现大多数PPT的动画效果,而且还不用关心PPT文件格式,但是缺点也明显,其一商业软件要花钱购买且目前这两款软件都是按CPU收费;其二Flash格式的内容在iOS和Mac上无法得到支持,HTML5的格式在一些老的系统如Windows XP上无法通过浏览器内核来显示,可以说门槛高。
第三种方式是主讲端PPT通过调用PowerPoint的程序接口Export函数将每页PPT内容转成一张静态图片,然后将图片数据通过网络传输到所有远程互动的参会者,再由每个远程终端基于图片完成浏览。这种方式的优点是处理非常简单,但是缺点也是非常明显的,PPT的动画信息全部丢失了。
以上三种方式都存在明显缺陷或者适用度、复杂性方面存在问题,我们需要一种既能实现动画效果,又比较简单快捷、支持多终端使用、经济实用的方法。
发明内容
本发明的目的就是针对现有技术的不足,提供一种基于图片化实现zaa9电子幻灯片多终端动画协同浏览的方法。
本发明解决其技术问题所采用的技术方案如下:
本发明将PPT内容以页为单位,提取每页所有动画信息并按照动画执行步骤每帧动画结果导出一个图片,将每页所有动画结果图片和每页动画描述信息打成一个Zip格式的数据包;然后将每页的数据包上传到服务器,并通过网络通知给其他远程互动参与者,方便其他远程互动参与者获取;再由每个远程终端基于图片完成浏览,具体包括如下步骤:
步骤(1)、按页获取所有动画的执行序列的动画信息;
主讲端应用程序通过调用PowerPoint的程序接口get_InteractiveSequences获取每页的动画信息,动画信息包括动画数量、动画类型、每个动画的内容标记,Sequence就是动画的执行序列,也就是每页PPT所有动画的执行次序的描述列表;
所述的动画的内容标记是指显示内容还是隐藏内容;
动画信息包括Sequence、Effect、EffectInformation、Timing、Shape等;动画类型包括文字动画、形状动画;
步骤(2)、生成第一个动画执行前的图片并导出;
将所有后续按步骤出现的动画内容先隐藏,如果是形状动画,调用put_Visible(0)函数将其隐藏;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度到全透明来完成隐藏文字;
然后调用PowerPoint的程序接口Export将当前页面信息导出成静态有损压缩JPG图片;
步骤(3)、提取每个动画结果导出一个图片;
根据Sequence里的描述,每个条目就是一个动画;根据每个动画是显示还是隐藏来操作文字或者形状动画,然后生成图片;
步骤(4)、将步骤(1)、(2)、(3)生成的信息整体打包成一个Zip格式的数据包,以便提供给其他远程互动参与者;
步骤(5)、将每页动画整体打包后的Zip数据包上传到服务器,并通过网络通知给其他远程互动参与者,方便其他远程互动参与者获取;
步骤(6)、远程互动参与者从服务器获取每页动画整体打包后的Zip数据包,并在本地解压缩Zip数据包,每个远程互动参与者能够获取到PPT文件所有页面内容的每个动画执行完成后的图片信息,以便根据需要进行显示;
步骤(7)、主讲端根据本地操作以网络传输形式通过服务器告知其他远程互动参与者目前应该显示到哪个动画;
步骤(8)、每个远程互动参与者根据来自主讲端的命令数据,需要显示到哪个动画,就切换到哪个图片进行显示,由此实现了PPT电子幻灯片多终端动画协同浏览。
步骤(3)所述的提取每个动画结果导出一个图片,具体实现如下:
如果是隐藏操作,实现类似步骤(2):形状动画,调用put_Visible(0)函数将其隐藏;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度到全透明来完成隐藏文字;
如果是显示操作:形状动画,调用put_Visible(1)函数将其显示;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度到不透明来完成显示文字;
调用PowerPoint的程序接口Export完成执行到当前动画的页面内容导出成静态有损压缩JPG图片。
本发明有益效果如下:
本发明能实现动画效果满足大多数情况的用户使用需要;
本发明数据格式简单,基于图片化技术,非常适合多终端(如PC、iOS、安卓、Mac等)实现使用,每个终端渲染PPT时使用到主要是图片显示技术,不需要了解PPT复杂的数据格式,是一种非常便捷的技术方法,应用场景比较广泛。
本发明在满足视觉效果的情况下使用有损压缩,最大化减少数据传输量,有效节省带宽。
综上所述,本发明具备了将PPT导出静态图片的处理非常简单特性,非常适合多终端(如PC、iOS、安卓、Mac等)实现使用,每个终端渲染PPT时使用到主要是图片显示技术,技术简单、稳定可靠、性能可控;同时避免了传统的将每页PPT内容转成一张静态图片,PPT的动画信息全部丢失的问题。是一种非常便捷的技术方法,应用场景比较广泛。
具体实施方式
下面对本发明作进一步详细的说明。
基于图片化实现电子幻灯片多终端动画协同浏览的方法,总体思路包括:PPT内容以页为单位,提取每页所有动画信息并按照动画执行步骤每帧动画结果导出一个图片,将每页所有动画结果图片和每页动画描述信息打成一个Zip格式的数据包。然后将每页一个的Zip格式的数据包通过网络传输到所有远程互动的参会者,再由每个远程终端基于图片完成浏览。本发明具备了前面提到的第三种方法的处理非常简单,同时避免了每页PPT内容转成一张静态图片,PPT的动画信息全部丢失的问题。
具体包括如下步骤:
步骤(1)、按页获取所有动画的执行序列的动画信息;
主讲端应用程序通过调用PowerPoint的程序接口get_InteractiveSequences获取每页的动画信息,动画信息包括有几个动画、动画类型、每个动画是显示内容还是隐藏内容等信息,Sequence就是动画的执行序列,也就是每页PPT所有动画的执行次序的描述列表,本发明以它作为动画时间线的参考依据。
动画信息包括Sequence、Effect、EffectInformation、Timing、Shape等;动画类型包括文字动画、形状动画;
步骤(2)、生成第一个动画执行前的图片并导出;
PowerPoint程序本身不支持直接导出每个动画的执行完成后的结果图片,而仅支持每页生成一张图片,而且是所有动画和不参与动画的内容的叠加信息,这显然不是我们想要的内容。而PowerPoint程序提供的程序接口数据并不是按照动画的执行序列Sequence排列的,Sequence里只提供了每一步动画类型(文字动画、形状动画)、每个动画是显示还是隐藏。
生成第一个动画执行前的图片,需要将所有后续按步骤出现的动画内容先隐藏。如果是形状动画,调用put_Visible(0)函数将其隐藏;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度(包括LineFormat、FillFormat、GlowFormat、ReflectionFormat、ShadowFormat等字体子特性)到全透明来完成隐藏文字。
调用PowerPoint的程序接口Export完成当前页面信息导出成静态有损压缩JPG图片。
步骤(3)、提取每个动画结果导出一个图片;
根据Sequence里的描述,每个条目就是一个动画。根据每个动画是显示还是隐藏来操作文字或者形状动画,然后生成图片。
如果是隐藏操作,实现类似步骤(2):形状动画,调用put_Visible(0)函数将其隐藏;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度(包括LineFormat、FillFormat、GlowFormat、ReflectionFormat、ShadowFormat等字体子特性)到全透明来完成隐藏文字。
如果是显示操作:形状动画,调用put_Visible(1)函数将其显示;如果是文字动画,通过调用put_Transparency函数设置这段文字的透明度(包括LineFormat、FillFormat、GlowFormat、ReflectionFormat、ShadowFormat等字体子特性)到不透明来完成显示文字。
调用PowerPoint的程序接口Export完成执行到当前动画的页面内容导出成静态有损压缩JPG图片。
步骤(4)、将步骤(1)、(2)、(3)生成的信息整体打包成一个Zip文件,以便提供给其他远程互动参与者;
步骤(5)、将每页动画整体Zip打包信息上传到服务器,并通过网络通知给其他远程互动参与者,方便其他远程互动参与者获取;
步骤(6)、远程互动参与者从服务器获取每页动画整体Zip打包信息,并在本地将Zip文件解压缩,这样每个远程互动参与者能够获取到PPT文件所有页面内容的每个动画执行完成后的图片信息,以便根据需要进行显示;
步骤(7)、主讲端根据本地操作通过网络传输通过服务器告知其他远程互动参与者目前应该显示到哪个动画;
步骤(8)、每个远程互动参与者根据来自主讲端的命令数据,需要显示到哪个动画,就切换到哪个图片进行显示,由此实现了PPT电子幻灯片多终端动画协同浏览。