CN104679555B - 一种通过第三方软件实现ppt嵌入的方法和系统 - Google Patents
一种通过第三方软件实现ppt嵌入的方法和系统 Download PDFInfo
- Publication number
- CN104679555B CN104679555B CN201510049756.XA CN201510049756A CN104679555B CN 104679555 B CN104679555 B CN 104679555B CN 201510049756 A CN201510049756 A CN 201510049756A CN 104679555 B CN104679555 B CN 104679555B
- Authority
- CN
- China
- Prior art keywords
- ppt
- window
- background program
- background
- content
- 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.)
- Active
Links
Landscapes
- Image Processing (AREA)
- Image Generation (AREA)
Abstract
本发明适用计算机图形处理领域,公开了一种通过第三方软件实现PPT嵌入的方法,所述方法包括:PPT装载组件加载PPT;后台程序获取所述PPT的窗口句柄;后台程序根据所述窗口句柄获取所述PPT的窗口大小;后台程序根据所述PPT的窗口大小创建纹理视图;后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。本发明实现了PPT的无缝嵌入,不但克服现有技术复制图片的性能高消耗问题,还可以利用directx11的ID3D11Texture2D纹理来进行各种个性化的交互操作,而基于directx11的3D显卡加速功能更可以进一步保证呈现画面的流畅性。
Description
技术领域
本发明属于计算机图形界面处理领域,尤其涉及一种通过第三方软件实现PPT嵌入的方法和系统。
背景技术
传统的PowerPoint(以下简称PPT)嵌入技术一般采用截图保存为多张图片,以图片形式呈现,这种方法无法体现PPT的动画过程。现有技术可使用实时截图的方式展示PPT文件的动画过程,但该技术方案对机器的CPU资源消耗严重、对设备的性能要求非常高,如设备性能不足则无法达到呈现画面的流畅性。现有的高性能设备每秒秒捕获图片的极限受分辨率的限制,也仅为30~50张。
现有技术还有将PPT在子窗口中加载,然后在父窗口中呈现,利用父子窗口的特性来做到PPT的嵌入。这种方式下由于父子窗口的消息处理与平级窗口之间的处理方式有些差别,因此在子窗口中呈现PPT,对程序的稳定性有很大影响。其次这种显示方式也无法实现对呈现内容的个性化操作处理比如旋转、上下层切换等等。就是连最基本的放大、缩小时呈现画面也不够流畅。
发明内容
本发明的目的在于提供一种通过第三方软件实现PPT嵌入的方法和系统,用于解决传统的PPT嵌入方式消耗性能、流畅性差的缺点。
为了解决上述技术问题,本发明的第一方面提供了一种通过第三方软件实现PPT嵌入的方法。
一种通过第三方软件实现PPT嵌入的方法,所述方法包括:
PPT装载组件加载PPT;
后台程序获取所述PPT的窗口句柄;
后台程序根据所述窗口句柄获取所述PPT的窗口大小;
后台程序根据所述PPT的窗口大小创建纹理视图;
后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
作为进一步的技术方案,所述步骤PPT装载组件加载PPT之前,所述方法还包括:
启动后台程序;
启动PPT。
作为进一步的技术方案,所述步骤后台程序获取所述PPT的窗口句柄具体为:
调用后台程序的FindWindow函数;
通过所述FindWindow函数获取装载所述PPT的窗口句柄。
作为进一步的技术方案,所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区具体为:
调用后台程序的Bit-BLt函数;
在第三方软件渲染场景时,通过所述Bit-Blt函数将所述PPT窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
作为进一步的技术方案,所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区后,所述方法还包括:
将所述后备缓冲区的背景设备内容上的PPT的窗口内容呈现在第三方软件的界面上。
根据本发明的第二方面,提供了一种通过第三方软件实现PPT嵌入的系统。
一种通过第三方软件实现PPT嵌入的系统,所述系统包括后台程序和第三方软件的PPT装载组件;
所述后台程序包括:
第一获取模块,用于获取所述PPT的窗口句柄;
第二获取模块,用于根据所述窗口句柄获取所述PPT的窗口大小;
创建模块,用于根据所述PPT的窗口大小创建纹理视图;
拷贝模块,用于将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
作为进一步的技术方案,所述系统还包括:
第一启动模块,用于在PPT装载组件加载PPT之前,启动后台程序;
第二启动模块,用于在PPT装载组件加载PPT之前,启动PPT。
作为进一步的技术方案,所述第一获取模块还包括:
第一调用单元,用于调用后台程序的FindWindow函数;
获取单元,用于通过所述FindWindow函数获取装载所述PPT的窗口句柄。
作为进一步的技术方案,所述拷贝模块包括:
第二调用单元,用于调用后台程序的Bit-Blt函数;
拷贝单元,用于在第三方软件渲染场景时,通过所述Bit-Blt函数将所述PPT窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
作为进一步的技术方案,所述系统还包括:
呈现模块,用于将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区后,将所述后备缓冲区的背景设备内容上的PPT的窗口内容呈现在第三方软件的界面上。
有益效果:
在本发明中,通过后台程序获取所述PPT的窗口句柄,后台程序根据所述窗口句柄获取所述PPT的窗口大小;后台程序根据所述PPT的窗口大小创建纹理视图以及后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。本发明实现了很好的PPT嵌入,不需要复制图片的性能高消耗,又用可以利用directx11的ID3D11Texture2D来进行各种个性化操作,同时也利用了directx11的3d显卡加速功能来保证呈现画面的流畅性。
附图说明
图1是本发明实施例1提供的一种通过第三方软件实现PPT嵌入的方法的流程示意图。
图2是本发明实施例2提供的一种通过第三方软件实现PPT嵌入的系统的系统框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来说明。
实施例1
如图1所示,一种通过第三方软件实现PPT嵌入的方法,所述方法包括:
S101:PPT装载组件加载PPT;
S102:后台程序获取所述PPT的窗口句柄;
S103:后台程序根据所述窗口句柄获取所述PPT的窗口大小;
S104:后台程序根据所述PPT的窗口大小创建纹理视图;
S105:后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
需要说明的是,本案中的第三方软件为一Direct11软件,其中Direct11软件包括渲染管线:DirectX 11加入了对Tessellation(镶嵌)的支持,镶嵌由外壳着色器、镶嵌单元以及域着色器组成。同时还加入了计算着色器,计算着色器与DX10中引入的GS不同,它并不是渲染管线的一部分,镶嵌可以把一些较大的图元分成很多更小的图元,并将这些小图元组合到一起,形成一种有序的几何图形,这种几何图形更复杂,当然也更接近现实。这个过程也被称作细分曲面举例来说,镶嵌可以让一个立方体,通过处理看起来像是个球形,这样的话无疑节省了空间。此外,图形的质量、性能以及可控性也达到了一定的促进。由于DirectX 11所新增的特性甚至可以应用到DirectX 10硬件中,所以我们对于DirectX 11的快速应用都非常期待和乐观。DirectX 11特性还包括很重要一点:支持多线程。得益于此,应用程序可以同步创造有用资源或者管理状态,并从所有专用线程中发送提取命令,这样做无疑效率更高。DirectX 11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。所述PPT装载组件为该Direct11软件的一部分。
需要说明的是,所述步骤PPT装载组件加载PPT之前,所述方法还包括:
启动后台程序;启动PPT。该启动后台程序的操作可以通过软件设置的按钮实现,也可在打开软件时就自动打开后台程序,当然,在其他的实施例中,也可为其他的实施方式,并不局限于本发明的实施方式。
在本发明的实施例1中,所述步骤后台程序获取所述PPT的窗口句柄具体为:
调用后台程序的FindWindow函数;
通过所述FindWindow函数获取装载所述PPT的窗口句柄。
具体的,所述FindWindow函数可以通过全局变量调用,也可通过局部变量调用。其中,句柄指一个对象的标识,而指针是一个对象的内存首地址。从实际处理的角度讲,即可以把句柄定义为指针,又可以把它定义为同类对象数组的索引,该FindWindow获取的值则为该PPT的窗口句柄的大小。该函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
在本发明的实施例1中,所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区具体为:
调用后台程序的Bit-BLt函数;
在第三方软件渲染场景时,通过所述Bit-Blt函数将所述PPT窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
该Bit-BLt函数对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境。
在本发明的实施例1中,所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区后,所述方法还包括:
将所述后备缓冲区的背景设备内容上的PPT的窗口内容呈现在第三方软件的界面上。
在本发明中,通过后台程序获取所述PPT的窗口句柄,后台程序根据所述窗口句柄获取所述PPT的窗口大小;后台程序根据所述PPT的窗口大小创建纹理视图以及后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。本发明实现了很好的PPT嵌入,不需要复制图片的性能高消耗,又用可以利用directx11的ID3D11Texture2D来进行各种个性化操作,同时也利用了directx11的3d显卡加速功能来保证呈现画面的流畅性。
实施例2
一种通过第三方软件实现PPT嵌入的系统,所述系统包括后台程序1和第三方软件的PPT装载组件2;
所述后台程序1包括:
第一获取模块100,用于获取所述PPT的窗口句柄;
第二获取模块200,用于根据所述窗口句柄获取所述PPT的窗口大小;
创建模块300,用于根据所述PPT的窗口大小创建纹理视图;
拷贝模块400,用于将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
需要说明的是,本案中的第三方软件为一Direct11软件,其中Direct11软件包括渲染管线:DirectX 11加入了Tessellation(镶嵌),镶嵌由外壳着色器、镶嵌单元以及域着色器组成。同时还加入了计算着色器,计算着色器与DX10中引入的GS不同,它并不是渲染管线的一部分,镶嵌可以把一些较大的图元分成很多更小的图元,并将这些小图元组合到一起,形成一种有序的几何图形,这种几何图形更复杂,当然也更接近现实。这个过程也被称作细分曲面举例来说,镶嵌可以让一个立方体,通过处理看起来像是个球形,这样的话无疑节省了空间。此外,图形的质量、性能以及可控性也达到了一定的促进。由于DirectX 11所新增的特性甚至可以应用到DirectX 10硬件中,所以我们对于DirectX 11的快速应用都非常期待和乐观。DirectX 11特性还包括很重要一点:支持多线程。得益于此,应用程序可以同步创造有用资源或者管理状态,并从所有专用线程中发送提取命令,这样做无疑效率更高。DirectX 11的这种多线程技术可能并不能加速绘图的子系统(特别是当我们的GPU资源受限时),但是这样却可以提升线程启动游戏的效率,并且可以利用台式CPU核心数量不断提高所带来的潜力。所述PPT装载组件为该Direct11软件的一部分。
在本发明的实施例1中,所述系统还包括:
第一启动模块3,用于在PPT装载组件加载PPT之前,启动后台程序;
第二启动模块4,用于在PPT装载组件加载PPT之前,启动PPT。
在本发明的实施例2中,所述第一获取模块100还包括:
第一调用单元,用于调用后台程序的FindWindow函数;
获取单元,用于通过所述FindWindow函数获取装载所述PPT的窗口句柄。
在本发明的实施例2中,所述拷贝模块包括:
第二调用单元,用于调用后台程序1的Bit-BLt函数;
拷贝单元,用于在第三方软件渲染场景时,通过所述Bit-Blt函数将所述PPT窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。
在本发明的实施例2中,所述后台程序1还包括:
呈现模块500,用于将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区后,将所述后备缓冲区的背景设备内容上的PPT的窗口内容呈现在第三方软件的界面上。
在本发明中,通过后台程序获取所述PPT的窗口句柄,后台程序根据所述窗口句柄获取所述PPT的窗口大小;后台程序根据所述PPT的窗口大小创建纹理视图以及后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上。本发明实现了很好的PPT嵌入,不需要复制图片的性能高消耗,又用可以利用directx11的ID3D11Texture2D来进行各种个性化操作,同时也利用了directx11的3d显卡加速功能来保证呈现画面的流畅性。
值得注意的是,上述实施例中,所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
另外,本领域普通技术人员可以理解实现上述各实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,相应的程序可以存储于计算机可读取存储介质中,所述的存储介质,如ROM/RAM、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (1)
1.一种通过第三方软件实现PPT嵌入的方法,其特征在于,所述方法包括:
PPT装载组件加载PPT;
后台程序获取所述PPT的窗口句柄;
后台程序根据所述窗口句柄获取所述PPT的窗口大小;
后台程序根据所述PPT的窗口大小创建纹理视图;
后台程序将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上;
所述步骤PPT装载组件加载PPT之前,所述方法还包括:
启动后台程序;
启动PPT;
所述步骤后台程序获取所述PPT的窗口句柄具体为:
调用后台程序的FindWindow函数;
通过所述FindWindow函数获取装载所述PPT 的窗口句柄;
所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区具体为:
调用后台程序的Bit-BLt函数;
在第三方软件渲染场景时,通过所述Bit-Blt函数将所述PPT窗口的设备内容拷贝至所述纹理视图的后备缓冲区的背景设备内容上;
所述步骤将所述PPT的窗口的设备内容拷贝至所述纹理视图的后备缓冲区后,所述方法还包括:
将所述后备缓冲区的背景设备内容上的PPT的窗口内容呈现在第三方软件的界面上。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510049756.XA CN104679555B (zh) | 2015-01-30 | 2015-01-30 | 一种通过第三方软件实现ppt嵌入的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510049756.XA CN104679555B (zh) | 2015-01-30 | 2015-01-30 | 一种通过第三方软件实现ppt嵌入的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104679555A CN104679555A (zh) | 2015-06-03 |
CN104679555B true CN104679555B (zh) | 2018-03-23 |
Family
ID=53314652
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510049756.XA Active CN104679555B (zh) | 2015-01-30 | 2015-01-30 | 一种通过第三方软件实现ppt嵌入的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104679555B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106547547B (zh) * | 2016-10-18 | 2019-12-10 | 广州酷狗计算机科技有限公司 | 数据采集方法及装置 |
CN107329723A (zh) * | 2017-07-13 | 2017-11-07 | 山东超越数控电子有限公司 | 一种实现DirectDraw加速的方法 |
CN113076725B (zh) * | 2020-01-03 | 2023-01-06 | 福建天泉教育科技有限公司 | 一种基于ppt推广第三方软件的方法及终端 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262748A (zh) * | 1996-04-04 | 2000-08-09 | 安尼索福特公司 | 获取、处理和发送包含在一个图形用户界面窗口中的数据的装置和方法 |
EP1293907A1 (en) * | 2000-04-17 | 2003-03-19 | Hotto Link, Inc. | Method for displaying browser screen, display system, and recording medium |
-
2015
- 2015-01-30 CN CN201510049756.XA patent/CN104679555B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1262748A (zh) * | 1996-04-04 | 2000-08-09 | 安尼索福特公司 | 获取、处理和发送包含在一个图形用户界面窗口中的数据的装置和方法 |
EP1293907A1 (en) * | 2000-04-17 | 2003-03-19 | Hotto Link, Inc. | Method for displaying browser screen, display system, and recording medium |
Also Published As
Publication number | Publication date |
---|---|
CN104679555A (zh) | 2015-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP4198909A1 (en) | Image rendering method and apparatus, and computer device and storage medium | |
US11344806B2 (en) | Method for rendering game, and method, apparatus and device for generating game resource file | |
KR101523888B1 (ko) | 정적 이미지들의 디스플레이 | |
US8325177B2 (en) | Leveraging graphics processors to optimize rendering 2-D objects | |
KR101952983B1 (ko) | 콘텐트의 타일-기반 렌더링을 위한 방법 및 콘텐트를 렌더링하기 위한 시스템 | |
US10553024B2 (en) | Tile-based rendering method and apparatus | |
JP5805864B2 (ja) | グラフィックスレンダリングエンジンおよびその実施方法 | |
US10621690B2 (en) | Storing bandwidth-compressed graphics data | |
CN112740278B (zh) | 用于图形处理的方法及设备 | |
US20150348280A1 (en) | Dynamic Generation Of Texture Atlases | |
CN105023234B (zh) | 基于嵌入式系统存储优化的图形加速方法 | |
WO2010000126A1 (zh) | 交互信息生成方法及系统 | |
KR20170132758A (ko) | 하이브리드 2d/3d 그래픽 렌더링 | |
CN104679555B (zh) | 一种通过第三方软件实现ppt嵌入的方法和系统 | |
CN112991377A (zh) | 一种基于opencv和shader融合技术的抠像算法 | |
WO2015147815A1 (en) | Atlas generation based on client video configuration | |
CN112189219A (zh) | 低分辨率深度预过程 | |
KR102521654B1 (ko) | 컴퓨팅 시스템 및 컴퓨팅 시스템에서 타일-기반 렌더링의 그래픽스 파이프라인을 수행하는 방법 | |
CN105700887A (zh) | 一种基于Directx11视口的内容共享系统及方法 | |
CN102663796B (zh) | 一种开放图形库的动画处理方法和装置 | |
CN103577046A (zh) | 一种3d立体桌面系统及其实现方法 | |
US20190220411A1 (en) | Efficient partitioning for binning layouts | |
CN104008565A (zh) | 一种利用cocos2d-x以及HGE引擎播放Flash位图动画的系统和方法 | |
CN101650822A (zh) | 交互信息生成方法及系统 | |
JP7352032B2 (ja) | 動画生成方法、装置、電子デバイス及びコンピュータ読取可能記憶媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |