跨进程图像绘制方法及其装置、设备、介质制造方法及图纸

技术编号:36083262 阅读:14 留言:0更新日期:2022-12-24 10:58
本申请公开一种跨进程图像绘制方法及其装置、设备、介质,所述方法包括:响应作用于由中央处理器执行第一图像绘制进程的图像绘制事件,获取图像绘制事件的待绘制图像所对应的目标句柄;基于目标句柄,生成待绘制图像数据的共享缓冲区,建立第一图像绘制进程中待绘制图像的内存地址与共享缓冲区中的磁盘地址之间的地址映射;基于内存地址,读取第一图像绘制进程中待绘制图像的图像数据,将图像数据存储至共享缓冲区中的磁盘地址;将待绘制图像完全存储至共享缓冲区后,将待绘制图像推送至由图像处理器执行第二图像绘制进程,驱动第二图像绘制进程绘制待绘制图像。本申请可减轻中央处理器的图像绘制压力且节省运行内存,以提升系统的稳定性。系统的稳定性。系统的稳定性。

【技术实现步骤摘要】
跨进程图像绘制方法及其装置、设备、介质


[0001]本申请涉及网络直播特效领域,尤其涉及一种跨进程图像绘制方法,此外还涉及该方法相应的装置、设备以及非易失性存储介质。

技术介绍

[0002]现有终端设备在绘制动画特效进行输出显示时,通常会使用由设备的中央处理器执行的Core Graphic等高级绘图引擎进行图形绘制,例如,使用Core Graphic等高级绘图引擎绘制直播间中的动画特效以提升直播间的直播氛围,但若高级绘图引擎需绘制高分辨率图像或绘制数量较多的图像的动画特效时,如直播间中高清晰度高帧数的礼物动画特效通常具有大量的高分辨率图像,绘制时将占用终端设备大量的运行内存,影响运行系统的稳定性,且瞬间申请大量的运行内存缓存待绘制图像,可能造成运行内存溢出而使系统发生OOM问题,导致图像绘制进程被强行关闭中断动画特效绘制,且造成应用程序发生闪退,严重影响用户的使用体验。
[0003]且设备中的中央处理器除了需执行的Core Graphic等高级绘图引擎进行图形绘制时,还需为设备执行其他进程以保证应用程序及运行系统的运行,巨量的进程对中央处理器造成较大的运行负责,影响中央处理器的整体执行效率及响应速度,甚至造成中央处理器发热及设备系统发生卡顿等问题。
[0004]鉴于现有的动画特效图像绘制所存在的问题,本申请人出于解决该问题的考虑做出相应的探索。

技术实现思路

[0005]本申请的目的在于满足用户需求而提供一种跨进程图像绘制方法,此外还涉及该方法相应的装置、设备、非易失性存储介质以及计算机程序产品。
[0006]为实现本申请的目的,采用如下技术方案:
[0007]适应本申请的目的而提出的一种跨进程图像绘制方法,包括如下步骤:
[0008]响应作用于第一图像绘制进程的图像绘制事件,获取所述图像绘制事件的待绘制图像所对应的目标句柄,其中,所述第一图像绘制进程由中央处理器执行;
[0009]基于所述目标句柄,生成所述待绘制图像的共享缓冲区,并建立所述第一图像绘制进程中所述待绘制图像的内存地址与所述共享缓冲区中的磁盘地址之间的地址映射;
[0010]基于所述内存地址,读取所述第一图像绘制进程中所述待绘制图像的图像数据,将所述图像数据存储至所述共享缓冲区中的磁盘地址;
[0011]将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像,其中,所述第二图像绘制进程由图像处理器执行。
[0012]进一步的实施例中,所述响应作用于第一图像绘制进程的图像绘制事件的步骤中,包括如下步骤:
[0013]响应作用于直播间的虚拟礼物赠送事件,获取所述虚拟礼物赠送事件的目标礼物标识;
[0014]从礼物控件库中查询出所述目标礼物标识所对应的动画特效控件,所述动画特效控件中包含待绘制图像;
[0015]将所述动画特效控件包含的所述待绘制图像推送至所述第一图像绘制进程,触发作用于所述待绘制图像的所述图像绘制事件。
[0016]进一步的实施例中,所述基于所述目标句柄,生成所述待绘制图像的共享缓冲区,并建立所述第一图像绘制进程中所述待绘制图像的内存地址与所述共享缓冲区中的磁盘地址之间的地址映射的步骤中,包括如下步骤:
[0017]生成具有所述目标句柄的共享缓冲区;
[0018]获取所述待绘制图像作用于所述第一图像绘制进程的首位内存地址;
[0019]建立所述首位内存地址与所述共享缓冲区中首位磁盘地址之间的地址映射。
[0020]进一步的实施例中,所述基于所述内存地址,读取所述第一图像绘制进程中所述待绘制图像的图像数据,将所述图像数据存储至所述共享缓冲区中的磁盘地址的步骤中,包括如下步骤:
[0021]确定所述待绘制图像作用于所述第一图像绘制进程的内存地址指针,确定该内存地址指针所对应的目标内存地址;
[0022]根据预设的地址读取步数,确定出以所述目标内存地址为地址起点所对应的末尾内存地址;
[0023]确定所述目标内存地址与末尾内存地址之间的内存地址区间,获取所述内存地址区间中存储的图像数据,将所述图像数据存储至所述共享缓冲区中对应的磁盘地址;
[0024]基于所述末尾内存地址调整所述内存地址指针。
[0025]进一步的实施例中,所述将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像的步骤中,包括如下步骤:
[0026]基于所述共享缓冲区中各所述磁盘地址,获取各所述磁盘地址中存储的图像数据所组成的待绘制图像;
[0027]将所述待绘制图像推送至所述第二图像绘制进程中,驱动所述第二图像绘制进程根据预设的图像滤镜算法绘制所述待绘制图像;
[0028]获取由所述第二图像绘制进程输出的矢量图像。
[0029]进一步的实施例中,所述将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像的步骤之后,包括如下步骤:
[0030]获取由所述第二图像绘制进程绘制待绘制图像对应生成的特效图像;
[0031]调用所述第一图像绘制进程的图像回调方法,将所述特效图像回传至所述第一图像绘制进程;
[0032]驱动所述第一图像绘制进程将所述特效图像输出至动画特效控件中显示。
[0033]进一步的实施例中,所述将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像
的步骤之后,包括如下步骤:
[0034]响应作用于动画特效控件的图像显示完成事件,获取该图像显示完成事件所对应的目标句柄;
[0035]确定出所述目标句柄所对应的目标共享缓冲区,移除所述目标共享缓冲区。
[0036]适应本申请的目的而提出的一种跨进程图像绘制装置,其包括:
[0037]绘制事件响应模块,用于响应作用于第一图像绘制进程的图像绘制事件,获取所述图像绘制事件的待绘制图像所对应的目标句柄,其中,所述第一图像绘制进程由中央处理器执行;
[0038]缓冲区生成模块,用于基于所述目标句柄,生成所述待绘制图像的共享缓冲区,并建立所述第一图像绘制进程中所述待绘制图像的内存地址与所述共享缓冲区中的磁盘地址之间的地址映射;
[0039]图像数据缓冲模块,用于基于所述内存地址,读取所述第一图像绘制进程中所述待绘制图像的图像数据,将所述图像数据存储至所述共享缓冲区中的磁盘地址;
[0040]图像共享绘制模块,用于将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像,其中,所述第二图像绘制进程由图像处理器执行。
[0041]进一步的实施例中,所述绘制事件响应模块包括:
[004本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种跨进程图像绘制方法,其特征在于,包括如下步骤:响应作用于第一图像绘制进程的图像绘制事件,获取所述图像绘制事件的待绘制图像所对应的目标句柄,其中,所述第一图像绘制进程由中央处理器执行;基于所述目标句柄,生成所述待绘制图像的共享缓冲区,并建立所述第一图像绘制进程中所述待绘制图像的内存地址与所述共享缓冲区中的磁盘地址之间的地址映射;基于所述内存地址,读取所述第一图像绘制进程中所述待绘制图像的图像数据,将所述图像数据存储至所述共享缓冲区中的磁盘地址;将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述待绘制图像,其中,所述第二图像绘制进程由图像处理器执行。2.根据权利要求1所述的方法,其特征在于,所述响应作用于第一图像绘制进程的图像绘制事件的步骤中,包括如下步骤:响应作用于直播间的虚拟礼物赠送事件,获取所述虚拟礼物赠送事件的目标礼物标识;从礼物控件库中查询出所述目标礼物标识所对应的动画特效控件,所述动画特效控件中包含待绘制图像;将所述动画特效控件包含的所述待绘制图像推送至所述第一图像绘制进程,触发作用于所述待绘制图像的所述图像绘制事件。3.根据权利要求1所述的方法,其特征在于,所述基于所述目标句柄,生成所述待绘制图像的共享缓冲区,并建立所述第一图像绘制进程中所述待绘制图像的内存地址与所述共享缓冲区中的磁盘地址之间的地址映射的步骤中,包括如下步骤:生成具有所述目标句柄的共享缓冲区;获取所述待绘制图像作用于所述第一图像绘制进程的首位内存地址;建立所述首位内存地址与所述共享缓冲区中首位磁盘地址之间的地址映射。4.根据权利要求1所述的方法,其特征在于,所述基于所述内存地址,读取所述第一图像绘制进程中所述待绘制图像的图像数据,将所述图像数据存储至所述共享缓冲区中的磁盘地址的步骤中,包括如下步骤:确定所述待绘制图像作用于所述第一图像绘制进程的内存地址指针,确定该内存地址指针所对应的目标内存地址;根据预设的地址读取步数,确定出以所述目标内存地址为地址起点所对应的末尾内存地址;确定所述目标内存地址与末尾内存地址之间的内存地址区间,获取所述内存地址区间中存储的图像数据,将所述图像数据存储至所述共享缓冲区中对应的磁盘地址;基于所述末尾内存地址调整所述内存地址指针。5.根据权利要求1所述的方法,其特征在于,所述将所述待绘制图像完全存储至所述共享缓冲区后,将所述待绘制图像推送至第二图像绘制进程,驱动所述第二图像绘制进程绘制所述...

【专利技术属性】
技术研发人员:梁伟杰
申请(专利权)人:广州方硅信息技术有限公司
类型:发明
国别省市:

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

1