CN109857309B - 一种基于iOS移动终端的屏幕截图投射方法 - Google Patents
一种基于iOS移动终端的屏幕截图投射方法 Download PDFInfo
- Publication number
- CN109857309B CN109857309B CN201910055499.9A CN201910055499A CN109857309B CN 109857309 B CN109857309 B CN 109857309B CN 201910055499 A CN201910055499 A CN 201910055499A CN 109857309 B CN109857309 B CN 109857309B
- Authority
- CN
- China
- Prior art keywords
- opengl
- control
- screenshot
- mobile terminal
- screen
- 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
Images
Landscapes
- Controls And Circuits For Display Device (AREA)
- Digital Computer Display Output (AREA)
Abstract
本发明公开了一种基于iOS移动终端的屏幕截图投射方法,包括步骤:S1识别当前页面中的OpenGL控件,通过iOS系统的UI控制器类ViewController的生命周期管理来实时判断当前在移动终端屏幕上显示的OpenGL控件;S2判断当前页面中是否存在OpenGL控件,若存在,则进入步骤S3,若不存在则,则直接进入步骤S4;S3重写OpenGL控件,将OpenGL控件转化为非OpenGL控件;S4对当前整个页面进行非OpenGL方式截图,得到全屏图片;S5图像显示。本发明将OpenGL控件进行重写,转换成非OpenGL控件后再进行截图,能有效提高截图效率。
Description
技术领域
本发明涉及手机互联技术领域,具体地指基于iOS移动终端的屏幕截图投射方法。
背景技术
随着车联网行业的发展,手机互联正成为一种低成本高效的车联网解决方案,其中,以手机屏幕映射的方案应用最为广泛。屏幕映射,是指将手机的屏幕内容投射到车载导航仪屏幕,从而将本在手机屏幕上运行的功能展现在车载导航仪屏幕的一种技术。可以将导航、音乐等车载环境经常使用的功能在车载导航仪中呈现,优点是既有效的利用了车载导航仪屏幕大音响效果好的特点,又结合了手机性能强、软件更新速度快等优势。其屏幕投射实现原理是,手机端先进行屏幕截图,然后将截图进行编码并传输至车载导航仪上进行解码显示。
随着iOS系统升级到12.0之后,系统自带的屏幕截图方法效率变得很低,截一张图的耗时在100~500毫秒左右,即每秒最多截取2~10张图片,因此在屏幕映射过程中,投影画面的帧率不超过10FPS,算上网络传输和视频编解码等对于系统资源的影响,实际传输帧率会更低,导致画面不流畅。
发明内容
本发明的目的就是要提供一种截图帧率高、投影画面流畅的基于iOS移动终端的屏幕截图投射方法。
为实现此目的,本发明所涉及的一种基于iOS移动终端的屏幕截图投射方法,包括如下步骤:
S1识别当前页面中的OpenGL控件
通过iOS系统的UI控制器类ViewController的生命周期管理来实时判断当前在移动终端屏幕上显示的OpenGL控件;
S2判断当前页面中是否存在OpenGL控件,若存在,则进入步骤S3,若不存在则,则直接进入步骤S4;
S3重写OpenGL控件,将OpenGL控件转化为非OpenGL控件;
S4对当前整个页面进行非OpenGL方式截图,得到全屏图片;
S5图像显示。
进一步,在步骤S1之前还包括步骤S0:预先定义OpenGL控件。
进一步,所述步骤S1中ViewController的生命周期管理为:通过ViewWillAppear和ViewDidDisappear来判断一个页面的显示和退出。
进一步,所述步骤S4中的非OpenGL方式截图为调用iOS系统的renderInContext接口进行截图。
进一步,所述步骤S3包括如下步骤:
S31在OpenGL控件内以固定频率进行OpenGL方式截图;
S32 将S31中截取的图片覆盖在OpenGL控件上方。
进一步,所述步骤S31为:创建一个类A’继承OpenGL控件A,在A’内部以固定频率进行OpenGL方式截图。
进一步,所述固定频率为每秒20~30次。
进一步,所述步骤S32为:将步骤S31中所截得的OpenGL控件的镜像图片,铺满在OpenGL控件内部。
本发明基于iOS移动终端的屏幕截图投射方法,对OpenGL控件进行重写,将OpenGL控件转化为非OpenGL控件之后对当前整个页面进行非OpenGL方式截图,得到全屏图片,提高了整体截图帧率,有效的解决因帧率较低导致的投影画面不流畅的问题。
附图说明
图1为本发明的方法流程图;
图2为本发明步骤S3的流程图。
具体实施方式
OpenGL(Open Graphics Library)是指定义了一个跨编程语言、跨平台的编程接口规格的专业的图形程序接口。OpenGL是一个功能强大,调用方便的底层图形库,是行业领域中最为广泛接纳的 2D/3D 图形 API(Application Program Interface 应用程序调用接口)。
一般情况下,移动终端的屏幕画面包含两种形式的渲染内容,一种是由OpenGL渲染的内容,另一种就是除OpenGL之外的普通画面内容。
本发明一种基于iOS移动终端的屏幕截图投射方法,将OpenGL控件进行重写,转换成非OpenGL控件后再进行截图,能有效提高截图效率。以下结合附图和具体实施例对本发明作进一步的详细说明:
请参阅图1及图2,一种基于iOS移动终端的屏幕截图投射方法包括如下步骤:
S1识别当前页面中的OpenGL控件
通过iOS系统的UI控制器类ViewController的生命周期管理来实时识别当前在移动终端屏幕上显示的OpenGL控件。
ViewController的生命周期管理具体为:通过ViewWillAppear和ViewDidDisappear来判断一个页面的显示和退出,ViewWillAppear和ViewDidDisappear之间即为ViewController的生命周期。在ViewController的一个生命周期内实时识别当前在移动终端屏幕上显示的OpenGL控件。
S2判断当前页面中是否存在OpenGL控件
若存在,则进入步骤S3;若不存在则,则直接进入步骤S4。
S3重写OpenGL控件,将OpenGL控件转化为非OpenGL控件。
S4对当前整个页面进行非OpenGL方式截图,得到全屏图片。
所述非OpenGL方式截图,具体为调用iOS系统的renderInContext接口进行截图。非OpenGL方式截图仅能截取到非OpenGL渲染的画面内容,如果是OpenGL渲染画面内容使用非OpenGL方式截图得到的是透明色。
S5图像显示
将步骤S4中的全屏图片输入至编码器编译成二进制流发送给显示端显示。
进一步,步骤S3重写OpenGL控件,将OpenGL控件转化为非OpenGL控件,具体包括如下步骤:
S31在OpenGL控件内以固定频率进行OpenGL方式截图;
具体为:创建一个类A’继承OpenGL控件A,在类A’内部以固定频率进行OpenGL方式截图。所述OpenGL方式截图,具体为调用iOS系统的OpenGLES接口进行截图。OpenGL方式截图仅能截取到OpenGL渲染的画面内容,如果是非OpenGL渲染画面内容使用OpenGL方式截图得到的是透明色。
为了节约资源,提高截图效率,当类A’的控件实例正在屏幕中显示时,在A’内部进行OpenGL方式截图。具体为:通过类A’所在iOS系统的UI控制器类ViewController的生命周期管理,来判断A’的控件实例是否在当前屏幕的显示范围内来控制是否截图。若A’的控件实例在当前屏幕的显示范围内则以固定频率进行OpenGL方式截图,否则不截图。其中ViewController的生命周期管理具体为:通过ViewWillAppear和ViewDidDisappear来判断一个页面的显示和退出。
进一步,所述固定频率为:以每秒20~30次的频率进行OpenGL方式的截图。
S32将步骤S31中截取的图片覆盖在OpenGL控件上方;
将步骤S31中所截得的OpenGL控件的截图镜像图片,铺满在A’控件内部。具体方法:在A’控件内部创建UI(User Interface用户界面) ImageView(图像视图)实例,将截取的镜像图片对UI ImageView的image属性赋值,并将UI ImageView(用户界面图像视图)添加在该OpenGL控件内部的最上方。
由于图片Image本身属于非OpenGL控件,因此将UI ImageView添加在该OpenGL控件内部的最上方后,即完成了将OpenGL控件向非OpenGL控件显示的转换,此时整个页面均为非OpenGL控件。
进一步,本发明在步骤S100之前还包括步骤S0预先定义OpenGL控件。例如定义地图、视频等动态画面为OpenGL渲染的控件。
进一步,所述步骤S1具体为,在ViewController的生命周期内,遍历当前显示的ViewController内是否存在步骤S0中已定义的OpenGL控件。
本发明基于iOS移动终端的屏幕截图投射方法,利用操作系统的截图API(Application Programming Interface 应用程序调用接口)针对不同的画面内容截图效率不同的特性,在OpenGL控件内进行OpenGL方式截图,并截取的图片覆盖在OpenGL控件上方,完成OpenGL控件向非OpenGL控件显示的转换,最后在整个页面上进行非OpenGL方式的截图,得到全屏图片。本发明能够大幅减少截图的时间,对于有屏幕投影需求的应用程序而言,能够大幅提高屏幕投影画面的帧率,从而有效提高画面的流畅度。
Claims (6)
1.一种基于iOS移动终端的屏幕截图投射方法,其特征在于,包括如下步骤:
S1识别当前页面中的OpenGL控件
通过iOS系统的UI控制器类ViewController的生命周期管理来实时判断当前在移动终端屏幕上显示的OpenGL控件;
S2判断当前页面中是否存在OpenGL控件,若存在,则进入步骤S3,若不存在则,则直接进入步骤S4;
S3重写OpenGL控件,将OpenGL控件转化为非OpenGL控件;
S4对当前整个页面进行非OpenGL方式截图,得到全屏图片;
S5图像显示;
所述步骤S3包括如下步骤:
S31在OpenGL控件内以固定频率进行OpenGL方式截图;
S32 将S31中截取的图片覆盖在OpenGL控件上方;
所述步骤S31为:创建一个类A’继承OpenGL控件A,在A’内部以固定频率进行OpenGL方式截图;
所述步骤S32为:将步骤S31中所截得的OpenGL控件的镜像图片,铺满在OpenGL控件内部。
2.根据权利要求1所述的基于iOS移动终端的屏幕截图投射方法,其特征在于:在步骤S1之前还包括步骤S0:预先定义OpenGL控件。
3.根据权利要求1所 述的基于iOS移动终端的屏幕截图投射方法,其特征在于:所述步骤S1中ViewController的生命周期管理为:通过ViewWillAppear和ViewDidDisappear来判断一个页面的显示和退出。
4.根据权利要求1所述的基于iOS移动终端的屏幕截图投射方法,其特征在于:所述步骤S4中的非OpenGL方式截图为调用iOS系统的renderInContext接口进行截图。
5.根据权利要求1所述的基于iOS移动终端的屏幕截图投射方法,其特征在于:所述固定频率为每秒20~30次。
6.根据权利要求1所述的基于iOS移动终端的屏幕截图投射方法,其特征在于,所述步骤S5为:将步骤S4中得到的全屏图片输入至编码器编码成二进制流发送给显示端显示。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910055499.9A CN109857309B (zh) | 2019-01-21 | 2019-01-21 | 一种基于iOS移动终端的屏幕截图投射方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910055499.9A CN109857309B (zh) | 2019-01-21 | 2019-01-21 | 一种基于iOS移动终端的屏幕截图投射方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109857309A CN109857309A (zh) | 2019-06-07 |
CN109857309B true CN109857309B (zh) | 2022-02-01 |
Family
ID=66895502
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910055499.9A Active CN109857309B (zh) | 2019-01-21 | 2019-01-21 | 一种基于iOS移动终端的屏幕截图投射方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109857309B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164121A (zh) * | 2011-12-19 | 2013-06-19 | 腾讯科技(深圳)有限公司 | 一种终端软件界面展示的方法和装置 |
CN105549821A (zh) * | 2015-12-18 | 2016-05-04 | 东软集团股份有限公司 | 移动设备与车机的互联方法、装置和系统 |
CN107341015A (zh) * | 2017-06-30 | 2017-11-10 | 百度在线网络技术(北京)有限公司 | 终端间数据同步方法、装置、终端及存储介质 |
CN107515759A (zh) * | 2017-09-20 | 2017-12-26 | 武汉斗鱼网络科技有限公司 | 截屏方法、装置、电子设备及可读存储介质 |
CN107995440A (zh) * | 2017-12-13 | 2018-05-04 | 北京奇虎科技有限公司 | 一种视频字幕贴图生成方法及装置 |
US10110936B2 (en) * | 2016-09-18 | 2018-10-23 | Shanghai Hode Information Technology Co., Ltd. | Web-based live broadcast |
CN108810610A (zh) * | 2017-05-05 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 屏幕共享方法和装置 |
CN108900913A (zh) * | 2018-07-09 | 2018-11-27 | 北京酷我科技有限公司 | 一种基于视频播放所有者的分级视图控制方法 |
CN109034115A (zh) * | 2018-08-22 | 2018-12-18 | Oppo广东移动通信有限公司 | 视频识图方法、装置、终端及存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104899832A (zh) * | 2015-06-23 | 2015-09-09 | 上海卓易科技股份有限公司 | 一种移动终端的拼接截图方法及拼接截图装置 |
CN107992349A (zh) * | 2017-11-22 | 2018-05-04 | 奇酷互联网络科技(深圳)有限公司 | 截屏方法、装置和移动终端 |
-
2019
- 2019-01-21 CN CN201910055499.9A patent/CN109857309B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164121A (zh) * | 2011-12-19 | 2013-06-19 | 腾讯科技(深圳)有限公司 | 一种终端软件界面展示的方法和装置 |
CN105549821A (zh) * | 2015-12-18 | 2016-05-04 | 东软集团股份有限公司 | 移动设备与车机的互联方法、装置和系统 |
US10110936B2 (en) * | 2016-09-18 | 2018-10-23 | Shanghai Hode Information Technology Co., Ltd. | Web-based live broadcast |
CN108810610A (zh) * | 2017-05-05 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 屏幕共享方法和装置 |
CN107341015A (zh) * | 2017-06-30 | 2017-11-10 | 百度在线网络技术(北京)有限公司 | 终端间数据同步方法、装置、终端及存储介质 |
CN107515759A (zh) * | 2017-09-20 | 2017-12-26 | 武汉斗鱼网络科技有限公司 | 截屏方法、装置、电子设备及可读存储介质 |
CN107995440A (zh) * | 2017-12-13 | 2018-05-04 | 北京奇虎科技有限公司 | 一种视频字幕贴图生成方法及装置 |
CN108900913A (zh) * | 2018-07-09 | 2018-11-27 | 北京酷我科技有限公司 | 一种基于视频播放所有者的分级视图控制方法 |
CN109034115A (zh) * | 2018-08-22 | 2018-12-18 | Oppo广东移动通信有限公司 | 视频识图方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109857309A (zh) | 2019-06-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108491275B (zh) | 程序优化方法、装置、终端及存储介质 | |
CN109460233B (zh) | 页面的原生界面显示更新方法、装置、终端设备及介质 | |
WO2018050003A1 (zh) | 3D canvas网页元素的渲染方法、装置及电子设备 | |
JP2013126185A (ja) | 情報処理装置、画像送信方法及び画像送信プログラム | |
EP2871560A1 (en) | Image processing method and apparatus | |
CN101398754A (zh) | 一种嵌入式设备的交互系统 | |
CN103034729A (zh) | 网页绘制系统和方法 | |
CN109343846B (zh) | 业务场景的构建方法和业务场景的构建系统 | |
CN107277642B (zh) | 一种基于视频通话数据流处理实现趣味贴图的方法 | |
CN102622217B (zh) | 一种跨屏运行应用的方法及系统 | |
CN110865863B (zh) | 快应用的界面显示方法、装置及存储介质 | |
CN113655975B (zh) | 图像显示方法、装置、电子设备和介质 | |
CN110555900B (zh) | 渲染指令的处理方法及装置、存储介质、电子设备 | |
CN110991368A (zh) | 相机场景识别方法及相关装置 | |
CN111930233B (zh) | 一种全景视频图像显示方法及显示设备 | |
CN114222185B (zh) | 视频播放方法、终端设备及存储介质 | |
CN109857309B (zh) | 一种基于iOS移动终端的屏幕截图投射方法 | |
US11593908B2 (en) | Method for preprocessing image in augmented reality and related electronic device | |
CN109829854B (zh) | 一种基于iOS移动终端的屏幕截图拼接投射方法 | |
WO2013020411A1 (zh) | 即时通信终端和实时显示会话消息的方法 | |
CN117076811A (zh) | 一种网页导出方法、装置、设备及存储介质 | |
CN109976841B (zh) | 导航引导信息的显示方法及智能终端 | |
CN113724355B (zh) | 用于视频的图表绘制方法、装置及电子设备 | |
CN112367399B (zh) | 滤镜效果生成方法及装置、电子设备以及存储介质 | |
CN110990109B (zh) | 一种拼接屏回显方法、终端、系统及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: A screen shot projection method based on iOS mobile terminal Effective date of registration: 20230222 Granted publication date: 20220201 Pledgee: Wuhan area branch of Hubei pilot free trade zone of Bank of China Ltd. Pledgor: WUHAN CARBIT INFORMATION Co.,Ltd. Registration number: Y2023420000064 |
|
PE01 | Entry into force of the registration of the contract for pledge of patent right |