CN108762829B - 一种用于图像美化的方法、客户端及终端 - Google Patents
一种用于图像美化的方法、客户端及终端 Download PDFInfo
- Publication number
- CN108762829B CN108762829B CN201810415445.4A CN201810415445A CN108762829B CN 108762829 B CN108762829 B CN 108762829B CN 201810415445 A CN201810415445 A CN 201810415445A CN 108762829 B CN108762829 B CN 108762829B
- Authority
- CN
- China
- Prior art keywords
- application program
- image data
- video image
- video
- beautifying
- 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
- 238000000034 method Methods 0.000 title claims abstract description 79
- 230000003796 beauty Effects 0.000 claims abstract description 49
- 230000008569 process Effects 0.000 claims abstract description 25
- 230000006870 function Effects 0.000 claims description 84
- 238000006243 chemical reaction Methods 0.000 claims description 24
- 230000005540 biological transmission Effects 0.000 claims description 18
- 230000004048 modification Effects 0.000 claims description 12
- 238000012986 modification Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 11
- 238000009434 installation Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 241000949456 Zanthoxylum Species 0.000 description 4
- 241000032846 Zanthoxylum bungeanum Species 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 235000007650 Aralia spinosa Nutrition 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 230000002441 reversible effect Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 230000002087 whitening effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005498 polishing Methods 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/80—Camera processing pipelines; Components thereof
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种用于图像美化的方法、客户端及终端,所述方法包括:对即时通信应用程序进行分身,获取分身应用程序;利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用美化后的视频图像数据和对端进行视频聊天。
Description
技术领域
本发明涉及图像处理技术领域,尤其涉及一种用于图像美化的方法、客户端及终端。
背景技术
随着智能终端的发展,智能终端承载了越来越多的功能。其中,视频聊天功能智能终端上必不可少的一个功能。
但是在进行视频聊天时,显示人物或场景的都是原始图像,而有些用户想展示给对方比较好的形象,希望在视频聊天时可以对人物及场景进行美化,因此如何在视频聊天时对图像进行美化是亟需解决的问题。
发明内容
鉴于上述问题,本发明实施例提供了一种用于图像美化的方法、客户端及终端,用于解决现有技术中在视频聊天时,无法对视频聊天的图像进行美化,导致用户的需求得不到满足的技术问题。
第一方面,本发明提供一种用于图像美化的方法,包括:
对即时通信应用程序进行分身,获取分身应用程序;
利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端进行视频聊天。
可选的,所述对即时通信应用程序进行分身之前,还包括:
检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
可选的,所述当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序之前,所述方法还包括:
对所述分身应用程序本身的视频窗口进行屏蔽。
可选的,当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序,包括:
当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
可选的,所述利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化,包括:
利用第二钩子函数修改所述美颜应用程序的第一数据接口;
通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
利用所述美颜应用程序对所述每一帧视频图像数据进行美化;
对美化后的所述每一帧视频图像数据进行旋转、压缩;
对压缩后的所述每一帧视频图像数据进行格式转换。
可选的,所述将所述美化后的视频图像数据传输至所述分身应用程序,包括:
利用第三钩子函数修改所述分身应用程序的第二数据接口;
通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
第二方面,本发明实施例提供一种用于美化图像的客户端,所述客户端包括:
分身单元,用于对即时通信应用程序进行分身,获取分身应用程序;
修改单元,用于利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
释放单元,用于当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
启动单元,用于当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
美化单元,用于利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,并对所述视频图像数据进行美化;
传输单元,用于将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端设备进行视频聊天。
可选的,所述客户端还包括:检测单元,用于检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
可选的,所述客户端还包括:屏蔽单元,用于对所述分身应用程序本身的视频窗口进行屏蔽。
可选的,所述启动单元包括:
启动子单元,用于当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
设置子单元,用于将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
覆盖子单元,用于在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
可选的,所述美化单元包括:
第一修改子单元,用于利用第二钩子函数修改所述美颜应用程序的第一数据接口;
获取子单元,用于通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
美化子单元,用于利用所述美颜应用程序对所述每一帧视频图像数据进行美化;
压缩子单元,用于对美化后的所述每一帧视频图像数据进行旋转、压缩;
转换子单元,用于对压缩后的所述每一帧视频图像数据进行格式转换。
可选的,所述传输单元包括:
第二修改子单元,用于利用第三钩子函数修改所述分身应用程序的第二数据接口;
传输子单元,用于通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现第一方面的任一实现方式所述方法的步骤。
第四方面,本发明实施例提供一种用于图像美化的终端,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面的任一实现方式所述方法的步骤。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
本发明实施例提供了一种用于图像美化的方法、客户端及终端,所述方法包括:对即时通信应用程序进行分身,获取分身应用程序;利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用美化后的视频图像数据和对端进行视频聊天;如此,对即时通信应用程序进行分身后,可以利用钩子函数对分身应用程序的摄像头管理器的进程代码进行修改,那么第一钩子函数对应的虚拟摄像头管理器就可以接管分身应用程序的摄像头管理器的处理逻辑;当分身应用程序启动时,就可以利用虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源,这样在美颜应用程序启动时就可以使用释放后的摄像头,获取视频图像数据,然后通过自身的美化图像机制对视频图像数据进行美化,获取到美化后的视频图像数据后,美颜应用程序将视频图像数据传输至分身应用程序,再由分身应用程序发送至对端设备,那么对端设备看到的视频图像就为美化过的图像,从而满足了用户提升形象的需求。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一提供的用于图像美化的方法流程示意图;
图2示出了根据本发明实施例二提供的用于图像美化的客户端结构示意图;
图3示出了根据本发明实施例二提供的启动单元的整体结构示意图;
图4示出了根据本发明实施例二提供的美化单元的整体结构示意图;
图5示出了根据本发明实施例二提供的传输单元的整体结构示意图;
图6示出了根据本发明实施例提供的终端的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种用于图像美化的方法,应用在终端,如图1所示,所述方法包括:
S110,对即时通信应用程序进行分身,获取分身应用程序;
本步骤中,在对即时通信应用程序进行分身之前,还需检测终端中是否已经安装有即时通信应用程序,如没有安装,则直接下载对应的安装包,并安装。这里,安装时,可以直接安装在本地,也可以安装在用于对视频聊天图像美化的客户端内部,本实施例中的客户端可以看作是安装在终端内的一个视频聊天图像进行美化的APP。这里,所述即时通信应用程序可以包括QQ、微信、陌陌等。
若检测到终端中已经安装有即时通信应用程序时,则利用分身技术对所述即时通信应用程序进行分身,这样的话,分身应用程序就相当于是一个虚拟的应用程序,那么在对分身应用程序的活动进程进行修改或者其他功能进行扩展时,系统是感知不到的。
本实施例中利用分身技术对所述即时通信应用程序进行分身,具体实现如下:
为了能更好地理解,本实施例中将分身后的即时通信应用程序称作分身应用程序,将分身前的即时通信应用程序称作原生应用程序,分身应用程序需要具备原生应用程序的所有功能,能够提供与原生应用程序完全相同的服务。宿主应用程序是实现分身应用程序的加壳应用程序,通过宿主应用程序完成分身应用程序的安装与运行。
对原生应用程序进行分身时,通过反射机制调用与宿主应用程序具有相同包名的作为宿主应用程序附带资源的安装包,以加载该安装包所实现的分身应用程序;其中,分身应用程序的所需资源与原生应用程序的所需资源一一对应。
本实施例所采用的反射机制可以为Java反射机制,Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能即为JAVA语言的反射机制。
这里是通过所述宿主应用程序,来建立所述分身应用程序的所需资源与原生应用程序的所需资源的一一对应关系,具体包括:
解析所述安装包以确定分身应用程序的所属资源的资源名;
根据分身应用程序的所属资源的资源名,加载与原生应用程序的所需资源一一对应的资源。其中,分身应用程序包括预留扩展项,以用于与原生应用程序的扩展资源相匹配。比如,当检测到所述原生应用程序的更新服务,可以基于所述分身应用程序的预留扩展项更新所述分身应用程序的所需资源。
这样就完成了即时通信应用程序的分身。
S111,利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
本步骤中,术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作系统、应用程序、或其他软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子hook函数。钩子通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截系统调用(system call)、或者系统函数行为、函数执行结果等,以监视或修改应用程序或其他组件的功能等等。
本实施例即可采用第一钩子hook函数对分身应用程序的摄像头管理器的进程代码进行修改,以使得虚拟摄像头管理器来接管分身应用程序的摄像头管理器的处理逻辑。这样的话,虚拟摄像头管理器就可以接管到对摄像头的管理,从而可以接管到摄像头采集的视频图像数据,以及接管到分身应用程序的视频窗口等。
这里,为了能够对视频图像数据进行美颜,还需要屏蔽掉分身应用程序本身的视频窗口,这里,所述视频窗口包括两个,一个是为用于显示对端视频图像的窗口,所述对端可以理解为与用户自身进行视频聊天的对端用户,也可理解为对端用户所用的即时通信应用程序,一个是为用于显示自身视频图像的窗口。当虚拟摄像头管理器接管到分身应用程序的视频窗口时,就默认为分身应用程序本身的视频窗口已经被屏蔽掉。
S112,当检测到所述分身应用程序启动时,利用虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
当检测到所述分身应用程序启动时,利用虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;这样后续美颜应用程序启动时,可以使用该摄像头,获取该摄像头传回的视频图像数据。
S113,当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
当接收到触发所述分身应用程序的视频聊天操作时,即用户触发了视频聊天时,启动美颜应用程序。具体实现如下:
当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面,即主界面;将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。所述第一视频窗口和第二视频窗口尺寸不同,且可以互相切换。
这里,所述美颜应用程序可以包括:美颜相机,比如花椒相机。这样的话,用户在进行视频聊天时,视频窗口实质上是美颜相机的照相界面。
S114,利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序;
美颜应用程序启动后,美颜应用程序就可以调用被释放的摄像头获取视频图像数据并对所述视频图像数据进行美化,获取美化后的所述视频图像数据,将所述美化后的视频图像数据传输至所述分身应用程序。
具体地,当摄像头采集到视频图像数据后,美颜应用程序就可以从摄像头获取视频图像数据,为了可以以帧的方式获取到每一帧视频图像数据,因此需要利用第二钩子函数修改所述美颜应用程序的第一数据接口的接口函数;以使得美颜应用程序可以通过第一数据接口获取到每一帧视频图像数据。
这里,以花椒相机为例,所述第一数据接口可以为:com.huajiao.filter.MyProcEffectEx.draw,为了反逆向破解,还可以对第一数据接口进行混淆,比如:混淆后的第一数据接口可以为:huajiao.alr.a。
当获取到每一帧视频图像数据后,美颜应用程序就可以利用自身的美颜工具对图像数据进行美化,比如,对目标区域的人物或场景进行磨皮、美白、肤色变换或者加一些特效等等。这里,只要是美颜应用程序具有的美化功能,均可以对视频图像数据进行美化。
然后利用预先建立的glsl脚本程序对每一帧视频图像数据进行旋转、压缩,在将压缩后的所述每一帧视频图像数据进行格式转换,转换为YUV格式的视频图像数据。这里,为了提高对视频图像数据的处理效率,所述glsl脚本程序是在图像处理器(GPU,GraphicsProcessing Unit)上运行的。
将每一帧视频图像数据进行格式转换后,需要通过分身应用程序的第二数据接口将格式转换后的每一帧视频图像数据传输至分身应用程序中,具体是将每一帧视频图像数据写至分身应用程序中的函数中的对应参数中后,即视为传输完成。代码实现如下:
void onPreviewFrame(byte[]data,Camera camera);其中,视频图像数据为byte数组,data即为视频图像数据。
然后所述分身应用程序在利用自身的发送机制将美化后的视频图像数据发送至对端设备。
这里,为了可以实现跨进程通信,即可以通过第二数据接口接收美颜应用程序发送的视频图像数据,通过分身应用程序的第二数据接口将格式转换后的每一帧视频图像数据传输至分身应用程序之前,还需利用第三钩子函数修改所述分身应用程序的第二数据接口的接口函数。比如,所述第二数据接口可以为系统的摄像头接口:android.hardware.Camera.PreviewCallback.onPreviewFrame。
其中,也可以在利用第一钩子函数对分身应用程序的摄像头管理器的进程代码进行修改后,再利用第三钩子函数修改所述分身应用程序的第二数据接口的接口函数,在此修改时机不做限定。
这样,分身应用程序获取到的视频图像数据即为美颜应用程序进行美化后的图像数据,因此,将这个视频图像数据发送至对端设备后,展示给对方的即是美化后的视频图像。
基于同样的发明构思,本发明还提供了一种用于图像美化的客户端,详见实施例二。
实施例二
本实施例还提供一种用于图像美化的客户端,如图2所示,所述客户端包括:检测单元20、分身单元21、修改单元22、释放单元23、启动单元24、美化单元25以及传输单元26;其中,
分身单元21用于对即时通信应用程序进行分身,获取分身应用程序;在分身单元21即时通信应用程序进行分身之前,所述检测单元20用于检测终端中是否已经安装有即时通信应用程序,如没有安装,则直接下载对应的安装包,并安装。在安装时,可以直接安装在本地,也可以安装在用于对视频图像美化的客户端内部。本实施例中的客户端可以看作是安装在终端内的一个视频图像美化的APP。这里,所述即时通信应用程序可以包括QQ、微信、陌陌等。
若检测单元20检测到终端中已经安装有即时通信应用程序时,分身单元21则利用分身技术对所述即时通信应用程序进行分身,这样的话,分身应用程序就相当于是一个虚拟的应用程序,那么在对分身应用程序的活动进程进行修改或者其他功能进行扩展时,系统是感知不到的。
本实施例中利用分身单元21对所述即时通信应用程序进行分身时,具体实现如下:
为了能更好地理解,本实施例中将分身后的即时通信应用程序称作分身应用程序,将分身前的即时通信应用程序称作原生应用程序,分身应用程序需要具备原生应用程序的所有功能,能够提供与原生应用程序完全相同的服务。宿主应用程序是实现分身应用程序的加壳应用程序,通过宿主应用程序完成分身应用程序的安装与运行。
对原生应用程序进行分身时,通过反射机制调用与宿主应用程序具有相同包名的作为宿主应用程序附带资源的安装包,以加载该安装包所实现的分身应用程序;其中,分身应用程序的所需资源与原生应用程序的所需资源一一对应。
本实施例所采用的反射机制可以为Java反射机制,Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法;这种动态获取信息以及动态调用对象的方法的功能即为JAVA语言的反射机制。
这里分身单元21是通过所述宿主应用程序,来建立所述分身应用程序的所需资源与原生应用程序的所需资源的一一对应关系,具体包括:
解析所述安装包以确定分身应用程序的所属资源的资源名;
根据分身应用程序的所属资源的资源名,加载与原生应用程序的所需资源一一对应的资源。其中,分身应用程序包括预留扩展项,以用于与原生应用程序的扩展资源相匹配。比如,当检测到所述原生应用程序的更新服务,可以基于所述分身应用程序的预留扩展项更新所述分身应用程序的所需资源。
这样就完成了即时通信应用程序的分身。
然后,修改单元22用于利用第一钩子函数对分身应用程序的摄像头管理器的进程进行修改;以使得虚拟摄像头管理器来接管分身应用程序的摄像头管理器的处理逻辑。这样的话,虚拟摄像头管理器就可以接管到对摄像头的管理,从而可以接管到摄像头采集的视频图像数据,以及接管到分身应用程序的视频窗口等。
需要说明的是,术语“钩子”涵盖了用于通过拦截在软件组件之间传递的函数调用、消息、或事件来改变或增加操作系统、应用程序、或其他软件组件的行为的技术。而处理这种被拦截的函数调用、事件或消息的代码就被称为钩子hook函数。钩子通常用于各种目标,包括对功能进行调试和对功能进行扩展。其示例可以包括在键盘或鼠标事件传递到应用程序之前拦截它们,或者拦截系统调用(system call)、或者系统函数行为、函数执行结果等,以监视或修改应用程序或其他组件的功能等等。
这里,所述客户端还包括:屏蔽单元27,为了能够对视频图像数据进行美颜,屏蔽单元27还需要屏蔽掉分身应用程序本身的视频窗口,这里,所述视频窗口包括两个,一个是为用于显示对端视频图像的窗口,一个是为用于显示自身视频图像的窗口。当虚拟摄像头管理器接管到分身应用程序的视频窗口时,就默认为分身应用程序本身的视频窗口已经被屏蔽掉。
随后,当检测到所述分身应用程序启动时,释放单元23利用虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;这样后续美颜应用程序启动时,可以使用该摄像头,获取该摄像头传回的视频图像数据。
当接收到触发所述分身应用程序的视频聊天操作时,即用户触发了视频聊天时,启动单元24用于当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;具体实现如下:
如图3所示,所述启动单元24包括:启动子单元31、设置子单元32、覆盖子单元32;
当检测到所述分身应用程序启动视频聊天时,启动子单元31用于启动所述美颜应用程序的图像显示界面,即主界面;设置子单元32将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;覆盖子单元32在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。所述第一视频窗口和第二视频窗口尺寸不同,且可以互相切换。
这里,所述美颜应用程序可以包括:美颜相机,比如花椒相机。这样的话,用户在进行视频聊天时,视频窗口实质上是美颜相机的照相界面。
美颜应用程序启动后,美化单元25用于利用所述美颜应用程序调用被释放的获取视频图像数据,并对所述视频图像数据进行美化,获取美化后的所述视频图像数据。
具体地,参见图4,所述美化单元25包括:第一修改子单元41、获取子单元42、美化子单元43、压缩子单元44及转换子单元45;其中,
当摄像头采集到视频图像数据后,美颜应用程序就可以从摄像头获取视频图像数据,为了可以以帧的方式获取到每一帧视频图像数据,因此第一修改子单元41需要利用第二钩子函数修改所述美颜应用程序的第一数据接口的接口函数;以使得获取子单元42可以通过第一数据接口获取到每一帧视频图像数据。
这里,以花椒相机为例,所述第一数据接口可以为:com.huajiao.filter.MyProcEffectEx.draw,为了反逆向破解,还可以对第一数据接口进行混淆,混淆后的第一数据接口可以为:huajiao.alr.a。
当获取子单元42获取到每一帧视频图像数据后,美化子单元43就可以利用自身的美颜工具对图像数据进行美化,比如,对目标区域的人物或场景进行磨皮、美白、肤色变换或者加一些特效等等。这里,只要是美颜应用程序具有的美化功能,均可以对视频图像数据进行美化。
然后压缩子单元44利用预先建立的glsl脚本程序对每一帧视频图像数据进行旋转、压缩,转换子单元45再将压缩后的所述每一帧视频图像数据进行格式转换,转换为YUV格式的视频图像数据。这里,为了提高对视频图像数据的处理效率,所述glsl脚本程序是在图像处理器(GPU,Graphics Processing Unit)上运行的。
将视频图像数据的格式转换之后,传输单元26用于传输美化后的所述视频图像数据。具体地,参见图5,所述传输单元26包括:第二修改子单元51及传输子单元52;其中,
将每一帧视频图像数据进行格式转换后,传输子单元52需要通过分身应用程序的第二数据接口将格式转换后的每一帧视频图像数据传输至分身应用程序中,具体是将每一帧视频图像数据写至分身应用程序中的函数中的对应参数中后,即视为传输完成。代码实现如下:
void onPreviewFrame(byte[]data,Camera camera);其中,视频图像数据为byte数组,data即为视频图像数据。
然后所述分身应用程序在利用自身的发送机制将美化后的视频图像数据发送至对端设备。
这里,为了可以实现跨进程通信,即可以通过第二数据接口接收美颜应用程序发送的视频图像数据,通过分身应用程序的第二数据接口将格式转换后的每一帧视频图像数据传输至分身应用程序之前,第二修改子单元51还需利用第三钩子函数修改所述分身应用程序的第二数据接口的接口函数。比如,所述第二数据接口可以为系统的摄像头接口:android.hardware.Camera.PreviewCallback.onPreviewFrame。
其中,也可以在利用第一钩子函数对分身应用程序的摄像头管理器的进程代码进行修改后,第二修改子单元51再利用第三钩子函数修改分身通信应用程序的第二数据接口的接口函数,在此修改时机不做限定。
这样,即时通信软件获取到的视频图像数据即为美颜应用程序进行美化后的图像数据,因此,将这个视频图像数据发送至对端设备后,展示给对方的即是美化后的视频图像。
本申请实施例中提供的技术方案,至少具有如下技术效果或优点:
根据本发明提供的用于图像美化的方法、客户端及终端,所述方法包括:对即时通信应用程序进行分身,获取分身应用程序;利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用美化后的视频图像数据和对端进行视频聊天;如此,对即时通信应用程序进行分身后,可以利用钩子函数对分身应用程序的摄像头管理器的进程代码进行修改,那么第一钩子函数对应的虚拟摄像头管理器就可以接管分身应用程序的摄像头管理器的处理逻辑;当分身应用程序启动时,就可以利用虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源,这样在美颜应用程序启动时就可以使用释放后的摄像头,获取视频图像数据,然后通过自身的美化图像机制对视频图像数据进行美化,获取到美化后的视频图像数据后,美颜应用程序将视频图像数据传输至分身应用程序,再由分身应用程序发送至对端设备,那么对端设备看到的视频图像就为美化过的图像,从而满足了用户提升形象的需求。
本发明同时还提供了一种移动终端,如图6所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point ofSales,销售终端)、车载电脑等任意终端设备,以终端为手机为例:
图6示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路31、存储器132、输入单元33、显示单元34、传感器35、音频电路36、无线保真(wireless-fidelity,Wi-Fi)模块37、处理器38、以及电源39等部件。本领域技术人员可以理解,图3中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路31可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器38处理;另外,将设计上行的数据发送给基站。通常,RF电路31包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low Noise Amplifier,LNA)、双工器等。此外,RF电路31还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System ofMobile communication,GSM)、通用分组无线服务(General Packet Radio Service,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband CodeDivision Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器32可用于存储软件程序以及模块,处理器38通过运行存储在存储器32的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器32可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器32可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元33可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元33可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器38,并能接收处理器38发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元33还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元34可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元34可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器38以确定触摸事件的类型,随后处理器38根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图3中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器35,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路36、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路36可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器38处理后,经RF电路31以发送给比如另一手机,或者将音频数据输出至存储器32以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块37可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图3示出了WiFi模块37,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器38是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器32内的软件程序和/或模块,以及调用存储在存储器32内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器38可包括一个或多个处理单元;优选的,处理器38可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器38中。
手机还包括给各个部件供电的电源39(比如电池),优选的,电源可以通过电源管理系统与处理器38逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器38还具有以下功能:对即时通信应用程序进行分身,获取分身应用程序;利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端进行视频聊天。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网关、代理服务器、系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
本发明公开了,A1、一种用于图像美化的方法,包括:
对即时通信应用程序进行分身,获取分身应用程序;
利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端进行视频聊天。
A2、如A1所述的方法,所述对即时通信应用程序进行分身之前,还包括:
检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
A3、如A1所述的方法,所述当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序之前,所述方法还包括:
对所述分身应用程序本身的视频窗口进行屏蔽。
A4、如A1所述的方法,当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序,包括:
当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
A5、如A1所述的方法,所述利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化,包括:
利用第二钩子函数修改所述美颜应用程序的第一数据接口;
通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
利用所述美颜应用程序对所述每一帧视频图像数据进行美化;
对美化后的所述每一帧视频图像数据进行旋转、压缩;
对压缩后的所述每一帧视频图像数据进行格式转换。
A6、如A5所述的方法,所述将所述美化后的视频图像数据传输至所述分身应用程序,包括:
利用第三钩子函数修改所述分身应用程序的第二数据接口;
通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
B7、一种用于美化图像的客户端,所述客户端包括:
分身单元,用于对即时通信应用程序进行分身,获取分身应用程序;
修改单元,用于利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
释放单元,用于当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
启动单元,用于当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
美化单元,用于利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,并对所述视频图像数据进行美化;
传输单元,用于将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端设备进行视频聊天。
B8、如B7所述的客户端,所述客户端还包括:检测单元,用于检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
B9、如B7所述的客户端,所述客户端还包括:屏蔽单元,用于对所述分身应用程序本身的视频窗口进行屏蔽。
B10、如B7所述的客户端,所述启动单元包括:
启动子单元,用于当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
设置子单元,用于将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
覆盖子单元,用于在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
B11、如B7所述的客户端,所述美化单元包括:
第一修改子单元,用于利用第二钩子函数修改所述美颜应用程序的第一数据接口;
获取子单元,用于通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
美化子单元,用于利用所述美颜应用程序对所述每一帧视频图像数据进行美化;
压缩子单元,用于对美化后的所述每一帧视频图像数据进行旋转、压缩;
转换子单元,用于对压缩后的所述每一帧视频图像数据进行格式转换。
B12、如B11所述的客户端,所述传输单元包括:
第二修改子单元,用于利用第三钩子函数修改所述分身应用程序的第二数据接口;
传输子单元,用于通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
C13、一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现A1-A6任一项所述方法的步骤。
D14、一种用于图像美化的终端,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如A1至A6任一项所述方法的步骤。
Claims (14)
1.一种用于图像美化的方法,其特征在于,包括:
对即时通信应用程序进行分身,获取分身应用程序;
利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化后,将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端进行视频聊天;
所述利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化,包括:
利用第二钩子函数修改所述美颜应用程序的第一数据接口;
通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
利用所述美颜应用程序对所述每一帧视频图像数据进行美化。
2.如权利要求1所述的方法,其特征在于,所述对即时通信应用程序进行分身之前,还包括:
检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
3.如权利要求1所述的方法,其特征在于,所述当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序之前,所述方法还包括:
对所述分身应用程序本身的视频窗口进行屏蔽。
4.如权利要求1所述的方法,其特征在于,当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序,包括:
当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
5.如权利要求1所述的方法,其特征在于,所述利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,对所述视频图像数据进行美化,还包括:
对美化后的所述每一帧视频图像数据进行旋转、压缩;
对压缩后的所述每一帧视频图像数据进行格式转换。
6.如权利要求5所述的方法,其特征在于,所述将所述美化后的视频图像数据传输至所述分身应用程序,包括:
利用第三钩子函数修改所述分身应用程序的第二数据接口;
通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
7.一种用于美化图像的客户端,其特征在于,所述客户端包括:
分身单元,用于对即时通信应用程序进行分身,获取分身应用程序;
修改单元,用于利用第一钩子函数对所述分身应用程序的摄像头管理器的进程进行修改;
释放单元,用于当检测到所述分身应用程序启动时,利用所述第一钩子函数对应的虚拟摄像头管理器释放所述分身应用程序占用的摄像头资源;
启动单元,用于当接收到触发所述分身应用程序的视频聊天操作时,启动美颜应用程序;
美化单元,用于利用所述美颜应用程序调用释放后的所述摄像头获取视频图像数据,并对所述视频图像数据进行美化;
传输单元,用于将所述美化后的视频图像数据传输至所述分身应用程序,进而使得所述分身应用程序可利用所述美化后的视频图像数据和对端设备进行视频聊天;
所述美化单元包括:
第一修改子单元,用于利用第二钩子函数修改所述美颜应用程序的第一数据接口;
获取子单元,用于通过所述第一数据接口获取所述摄像头采集的每一帧视频图像数据;
美化子单元,用于利用所述美颜应用程序对所述每一帧视频图像数据进行美化。
8.如权利要求7所述的客户端,其特征在于,所述客户端还包括:检测单元,用于检测是否安装有所述即时通信应用程序,若没有,则下载并安装所述即时通信应用程序。
9.如权利要求7所述的客户端,其特征在于,所述客户端还包括:屏蔽单元,用于对所述分身应用程序本身的视频窗口进行屏蔽。
10.如权利要求7所述的客户端,其特征在于,所述启动单元包括:
启动子单元,用于当检测到所述分身应用程序启动视频聊天时,启动所述美颜应用程序的图像显示界面;
设置子单元,用于将所述图像显示界面设置为视频聊天的第一视频窗口,所述第一视频窗口为用于显示自身视频图像的窗口;
覆盖子单元,用于在所述图像显示界面上覆盖一层第二视频窗口,所述第二视频窗口为用于显示对端视频图像的窗口。
11.如权利要求7所述的客户端,其特征在于,所述美化单元还包括:
压缩子单元,用于对美化后的所述每一帧视频图像数据进行旋转、压缩;
转换子单元,用于对压缩后的所述每一帧视频图像数据进行格式转换。
12.如权利要求11所述的客户端,其特征在于,所述传输单元包括:
第二修改子单元,用于利用第三钩子函数修改所述分身应用程序的第二数据接口;
传输子单元,用于通过所述第二数据接口将格式转换后的所述每一帧视频图像数据传输至所述分身应用程序。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。
14.一种用于图像美化的终端,其特征在于,包括:
至少一个处理器;以及
与所述处理器通信连接的至少一个存储器,其中,
所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至6任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810415445.4A CN108762829B (zh) | 2018-05-03 | 2018-05-03 | 一种用于图像美化的方法、客户端及终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810415445.4A CN108762829B (zh) | 2018-05-03 | 2018-05-03 | 一种用于图像美化的方法、客户端及终端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108762829A CN108762829A (zh) | 2018-11-06 |
CN108762829B true CN108762829B (zh) | 2021-07-09 |
Family
ID=64009144
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810415445.4A Active CN108762829B (zh) | 2018-05-03 | 2018-05-03 | 一种用于图像美化的方法、客户端及终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108762829B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109873971A (zh) * | 2019-02-27 | 2019-06-11 | 上海游卉网络科技有限公司 | 一种美妆通话系统及其方法 |
CN109922296A (zh) * | 2019-02-27 | 2019-06-21 | 上海游卉网络科技有限公司 | 一种美妆通话系统及其方法 |
CN111565332A (zh) * | 2020-04-27 | 2020-08-21 | 北京字节跳动网络技术有限公司 | 视频传输方法、电子设备和计算机可读介质 |
CN113794834B (zh) * | 2021-08-25 | 2023-08-08 | 维沃移动通信(杭州)有限公司 | 图像处理方法、装置及电子设备 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2920938B1 (fr) * | 2008-09-30 | 2010-01-29 | Jean Marc Robin | Procede et dispositif de simulation virtuelle d'une image |
CN102081547A (zh) * | 2011-01-26 | 2011-06-01 | 博视联(苏州)信息科技有限公司 | 提高嵌入式智能设备硬件通用性的方法 |
CN104469253A (zh) * | 2015-01-05 | 2015-03-25 | 掌赢信息科技(上海)有限公司 | 一种即时视频中的人脸美化方法和电子设备 |
CN104574306A (zh) * | 2014-12-24 | 2015-04-29 | 掌赢信息科技(上海)有限公司 | 一种即时视频中的人脸美化方法和电子设备 |
CN104853134A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 一种视频通信方法及装置 |
CN104933674A (zh) * | 2015-06-29 | 2015-09-23 | 网易传媒科技(北京)有限公司 | 一种图像处理方法及装置 |
CN105046661A (zh) * | 2015-07-02 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种提升视频美颜效率的方法、装置及智能终端 |
CN105872447A (zh) * | 2016-05-26 | 2016-08-17 | 努比亚技术有限公司 | 一种视频图像处理装置和方法 |
CN107807773A (zh) * | 2017-10-19 | 2018-03-16 | 广东欧珀移动通信有限公司 | 一种应用分身方法、装置、终端及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2975841A1 (en) * | 2014-07-17 | 2016-01-20 | HTC Corporation | Method for performing a video talk enhancement function and an electric device having the same |
-
2018
- 2018-05-03 CN CN201810415445.4A patent/CN108762829B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2920938B1 (fr) * | 2008-09-30 | 2010-01-29 | Jean Marc Robin | Procede et dispositif de simulation virtuelle d'une image |
CN102081547A (zh) * | 2011-01-26 | 2011-06-01 | 博视联(苏州)信息科技有限公司 | 提高嵌入式智能设备硬件通用性的方法 |
CN104853134A (zh) * | 2014-02-13 | 2015-08-19 | 腾讯科技(深圳)有限公司 | 一种视频通信方法及装置 |
CN104574306A (zh) * | 2014-12-24 | 2015-04-29 | 掌赢信息科技(上海)有限公司 | 一种即时视频中的人脸美化方法和电子设备 |
CN104469253A (zh) * | 2015-01-05 | 2015-03-25 | 掌赢信息科技(上海)有限公司 | 一种即时视频中的人脸美化方法和电子设备 |
CN104933674A (zh) * | 2015-06-29 | 2015-09-23 | 网易传媒科技(北京)有限公司 | 一种图像处理方法及装置 |
CN105046661A (zh) * | 2015-07-02 | 2015-11-11 | 广东欧珀移动通信有限公司 | 一种提升视频美颜效率的方法、装置及智能终端 |
CN105872447A (zh) * | 2016-05-26 | 2016-08-17 | 努比亚技术有限公司 | 一种视频图像处理装置和方法 |
CN107807773A (zh) * | 2017-10-19 | 2018-03-16 | 广东欧珀移动通信有限公司 | 一种应用分身方法、装置、终端及存储介质 |
Non-Patent Citations (2)
Title |
---|
"360手机vizza相机助手让你卸妆后无惧突如其来的视频聊天";高丽荣;《计算机与网络》;20171012(第19期);第37页 * |
"Automatic analysis of facial attractiveness from video";Sacide Kalayci 等;《 2014 IEEE International Conference on Image Processing (ICIP)》;20150129;第4191-4194页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108762829A (zh) | 2018-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108762829B (zh) | 一种用于图像美化的方法、客户端及终端 | |
WO2016150331A1 (zh) | 一种运行游戏客户端的方法和装置 | |
US10824449B2 (en) | Application running method and device | |
CN107590057B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN110058836B (zh) | 一种音频信号的输出方法及终端设备 | |
CN107704363B (zh) | 冻屏监测方法、移动终端及计算机可读存储介质 | |
CN107220132B (zh) | 一种文件创建信息的监听方法、设备及存储介质 | |
CN109407948B (zh) | 一种界面显示方法及移动终端 | |
CN106919458B (zh) | Hook目标内核函数的方法及装置 | |
CN110399195B (zh) | 一种桌面图标动态替换方法、设备及计算机可读存储介质 | |
CN109976612B (zh) | 应用功能实现方法、可穿戴设备、手机和计算机可读存储介质 | |
CN110780940A (zh) | 应用程序加载方法、电子设备和存储介质 | |
CN109284144A (zh) | 一种快应用处理方法及移动终端 | |
CN111061404A (zh) | 一种控制方法及第一电子设备 | |
CN108009031B (zh) | 一种应用程序的控制方法及移动终端 | |
CN108323236B (zh) | 一种交互方法和终端 | |
CN107908492B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN106302603A (zh) | 远程删除信息的方法和装置 | |
CN107770449B (zh) | 连拍方法、电子设备及存储介质 | |
CN107809527B (zh) | 一种呈现快捷操作的方法和电子设备 | |
CN107872367B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107832191B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107704287B (zh) | 程序应用免安装方法、移动终端及计算机可读存储介质 | |
CN111200648B (zh) | 一种业务调用方法、装置、终端设备及存储介质 | |
CN106934003B (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 |