画布显示控制方法和系统与流程

文档序号:12785930阅读:247来源:国知局
画布显示控制方法和系统与流程

本发明涉及智能终端技术领域,特别是涉及一种画布显示控制方法和系统。



背景技术:

随着信息化社会的到来,促进了现代信息显示技术的发展。基于画布的绘图和排版工具软件使用越来越广泛,利用画布进行绘图和排版并显示,以便观看相关的信息,例如电子地图和幻灯片等。观察者通过输入指令对画布进行缩放或平移控制,以便显示所需要的内容进行查看。

传统的画布显示控制方法是当用户试图平移或缩放画布时,将当前渲染的区域进行平移和缩放,然后渲染到界面上进行显示。若画布超出当前屏幕显示区域,则在平移和缩小的过程中,会在屏幕周围出现空白区域,不便于用户查看。传统的画布显示控制方法存在观看便利性低的缺点。



技术实现要素:

基于此,有必要针对上述问题,提供一种观看便利性高的画布显示控制方法和系统。

一种画布显示控制方法,包括以下步骤:

当检测到输入的画布显示操作指令时,获取画布预设区域的部分和所述画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像;

根据所述画布显示操作指令,分别获取与屏幕坐标对应的所述第一缓存图像和所述第二缓存图像上的待显示坐标;

根据所述第一缓存图像和所述第二缓存图像上的待显示坐标所对应位置的颜色,得到对应屏幕坐标的颜色;

根据各屏幕坐标的颜色得到与所述画布显示操作指令对应的叠加图像并输出至屏幕进行显示。

一种画布显示控制系统,包括:

图像缓存模块,用于当检测到输入的画布显示操作指令时,获取画布预设区域的部分和所述画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像;

坐标获取模块,用于根据所述画布显示操作指令,分别获取与屏幕坐标对应的所述第一缓存图像和所述第二缓存图像上的待显示坐标;

颜色提取模块,用于根据所述第一缓存图像和所述第二缓存图像上的待显示坐标所对应位置的颜色,得到对应屏幕坐标的颜色;

图像合成模块,用于根据各屏幕坐标的颜色得到与所述画布显示操作指令对应的叠加图像并输出至屏幕进行显示。

上述画布显示控制方法和系统,当检测到输入的画布显示操作指令时,获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像。根据画布显示操作指令,分别获取与屏幕坐标对应的第一缓存图像和第二缓存图像上的待显示坐标。根据第一缓存图像和第二缓存图像上的待显示坐标所对应位置的颜色,得到对应屏幕坐标的颜色。根据各屏幕坐标的颜色得到与画布显示操作指令对应的叠加图像并输出至屏幕进行显示。在检测到画布显示操作指令后,同时获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,并结合画布显示操作指令对两个缓存图像进行合成得到叠加图像显示在屏幕上,避免了在控制画布显示的过程中出现空白而影响用户观看,提高了观看便利性。

附图说明

图1为一实施例中画布显示控制方法的流程图;

图2为另一实施例中画布显示控制方法的流程图;

图3为一实施例中画布显示控制系统的结构图;

图4为另一实施例中画布显示控制系统的结构图。

具体实施方式

在一个实施例中,一种画布显示控制方法,适用于绘图、排版软件中的画布显示控制。如图1所示,上述方法包括以下步骤:

步骤S110:当检测到输入的画布显示操作指令时,获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像。

画布显示操作指令指用于进行画布显示控制的指令,用户可通过鼠标或触控屏等设备输入。画布显示操作指令的具体类型并不唯一,可以是控制画布进行缩放显示的指令,也可以是控制画布进行平移的指令。

当检测到输入的画布显示操作指令时记为操作开始,对屏幕的当前显示区域和画布预设区域的部分进行缓存。预设区域可根据实际情况进行选取,可以是将整个画布作为预设区域,也可是将部分画布作为预设区域,例如从当前显示区域向四周扩展一个屏幕尺寸,将扩展之后的区域作为预设区域。此外,在检测到画布显示操作指令结束则记为操作结束,在操作开始之后、操作结束之前记为操作进行中,此时用户的所有操作均会被标记为进行中。

检测画布显示操作指令的具体方式也不唯一,例如,可以是在检测到鼠标或者触摸物点击在画布上时,记为操作开始;也可以是当一个缩放或者平移画布的动画播放时,动画播放的开始时间记为开始。

在一个实施例中,在获取到画布预设区域的部分和画布在屏幕的当前显示部分之后缓存至显卡内存中,得到对应的第一缓存图像和第二缓存图像。将图像直接缓存到显存中,利用显卡的硬件加速特性进行图像合成,节省了内存和CPU(Central Processing Unit,中央处理器)占用。

在一个实施例中,步骤S110中获取画布预设区域的部分和所述画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像,包括步骤112和步骤114。

步骤112:获取画布预设区域的部分并位图缓存至显卡内存中,得到第一缓存图像。

步骤114:获取画布在屏幕的当前显示部分并缓存至显卡内存中,得到第二缓存图像。

在缓存画布预设区域的部分至显卡内存时,使用较低质量的位图缓存,避免当需要缓存的部分过大时占用过多显卡内存,提高了显卡性能。

步骤S120:根据画布显示操作指令,分别获取与屏幕坐标对应的第一缓存图像和第二缓存图像上的待显示坐标。

根据画布显示操作指令可确定屏幕坐标与两个缓存图像移动后坐标的对应关系,根据该对应关系便可找到两个缓存图像上与该屏幕坐标对应的待显示坐标。以平移画布为例,画布平移前屏幕坐标(X,Y)对应第一缓存图像的坐标(x,y),若画布显示操作指令将画布水平向左移动h,则移动后屏幕坐标(X,Y)对应第一缓存图像的待显示坐标为(x+h,y)。同理,可得到与屏幕坐标对应的第二缓存图像上的待显示坐标。

步骤S130:根据第一缓存图像和第二缓存图像上的待显示坐标所对应位置的颜色,得到对应屏幕坐标的颜色。

在获取到第一缓存图像和第二缓存图像上的待显示坐标之后,直接可根据待显示坐标提取对应位置的颜色,并进而计算得到屏幕坐标的颜色。具体地,颜色包括颜色值和透明度,根据待显示坐标所对应位置的颜色值和透明度,可确定对应屏幕坐标的颜色值和透明度,从而确定屏幕坐标的颜色。

在一个实施例中,步骤S130包括步骤132至步骤138。

步骤132:判断第一缓存图像和第二缓存图像上的待显示坐标是否超出对应缓存图像的图像边界。

分别判断第一缓存图像和第二缓存图像上确定的待显示坐标是否超出对应缓存图像的图像边界,以便后续步骤根据判断结果对应进行处理。

步骤134:当第一缓存图像和第二缓存图像上的待显示坐标均超过对应缓存图像的图像边界时,将对应屏幕坐标设置为透明色。

若两个缓存图像上确定的待显示坐标均超过对应缓存图像的图像边界时,则将对应屏幕坐标设置为透明色。

步骤136:当第一缓存图像和第二缓存图像上的待显示坐标存在一个未超出对应缓存图像的图像边界时,获取该未超出对应缓存图像的图像边界的坐标所对应位置的颜色,得到对应屏幕坐标的颜色。

若两个缓存图像存在一个的待显示坐标没有超出对应缓存图像的图像边界,则将该待显示坐标所对应位置的颜色作为对应屏幕坐标的颜色。

步骤138:当第一缓存图像和第二缓存图像上的待显示坐标均未超出对应缓存图像的图像边界时,对第一缓存图像和第二缓存图像上的待显示坐标对应位置的颜色进行叠加,得到对应屏幕坐标的颜色。

如果两个缓存图像上确定的待显示坐标都没有超过对应图像边界,则对两个待显示坐标所在位置的颜色进行叠加,得到对应屏幕坐标的颜色。具体地,本实施例中,步骤138采用透明度叠加公式进行叠加,将第二缓存图像叠加到第一缓存图像上,得到对应屏幕坐标的颜色,具体为:

透明度=1-(1-透明度1)*(1-透明度2)

颜色值=颜色值2*透明度2*(1-透明度1)+颜色值1*透明度1

其中,颜色值1和透明度1分别为第一缓存图像上的待显示坐标对应位置的颜色值和透明度,颜色值2和透明度2分别为第二缓存图像上的待显示坐标对应位置的颜色值和透明度。由此可分别计算得到屏幕坐标的透明度和颜色值,从而确定屏幕坐标的颜色。

具体地,步骤S120和步骤S130中,计算与屏幕坐标对应的第一缓存图像和第二缓存图像上的待显示坐标,以及根据第一缓存图像和第二缓存图像上的待显示坐标所对应位置的颜色得到对应屏幕坐标的颜色的算法如下:

其中,算法第1行计算屏幕坐标对应到第一缓存图像的坐标,第2行计算此屏幕坐标对应到第二缓存图像的坐标。然后判定计算的坐标是否超出对应图像边界,根据判断结果对应进行处理,得到两张缓存图像在此屏幕坐标下的叠加颜色。

步骤S140:根据各屏幕坐标的颜色得到与画布显示操作指令对应的叠加图像并输出至屏幕进行显示。

遍历屏幕上显示区域的每一个坐标,计算得到各屏幕坐标的颜色,即可在屏幕上显示完整的叠加图像。

步骤S120至步骤S140即是在操作进行中时,将画布当前显示区域和预设区域进行缓存,在渲染时对两个缓存图像进行合成显示。可以理解,步骤S120至步骤S140的合成显示操作也可以是在显卡中进行,利用显卡强大的并行计算能力,提高合成效率。

上述画布显示控制方法,在检测到画布显示操作指令后,同时获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,并结合画布显示操作指令对两个缓存图像进行合成得到叠加图像显示在屏幕上,避免了在控制画布显示的过程中出现空白而影响用户观看,提高了观看便利性。在整个控制过程中,画布对用户来说始终完全显示,只是在周围部分区域切换了清晰度,用户不会感受到画面闪烁感。

在一个实施例中,如图2所示,步骤S140之后,画布显示控制方法还可包括步骤S150和步骤S160。

步骤S150:检测画布显示操作指令是否结束。

在检测到画布显示操作指令结束则记为操作结束,判断画布显示操作指令是否结束的方式并不唯一,可以是通过鼠标松开或者最后一个触摸点从画布上移开记为操作结束;也可以是当一个缩放或者平移画布的动画播放时,动画播放的结束时间记为操作结束。当检测到画布显示操作指令结束后,则进行步骤S160。

步骤S160:获取幕布显示的图像进行缓存,得到新的第二缓存图像。

再次获取幕布当前显示的图像进行缓存,得到新的第二缓存图像,并返回步骤S120。可另建一个线程中伺机重新缓存当前显示区域部分,具体可以是在用户操作和渲染线程空闲时执行,也可以是时时执行。本实施例中,在用户操作和渲染线程空闲时执行步骤S160,优化资源。

本实施例中,在根据画布显示操作指令对画布进行显示控制时,实时获取画布当前显示部分对第二缓存图像进行更新,以便用户在操作的过程中,主要区域始终是清晰的,以提高显示效果。

在一个实施例中,继续参照图2,当画布显示操作指令结束时,画布显示控制方法还包括的步骤S170。

步骤S170:清除缓存的缓存图像。在操作结束时,清除缓存的第一缓存图像和第二缓存图像,避免占用缓存空间,以便下次根据用户操作进行显示控制,操作便利性。

在一个实施例中,一种画布显示控制系统,适用于绘图、排版软件中的画布显示控制。如图3所示,该系统包括图像缓存模块110、坐标获取模块120、颜色提取模块130和图像合成模块140。

图像缓存模块110用于当检测到输入的画布显示操作指令时,获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,得到对应的第一缓存图像和第二缓存图像。

画布显示操作指令指用于进行画布显示控制的指令,用户可通过鼠标或触控屏等设备输入。画布显示操作指令的具体类型并不唯一,检测画布显示操作指令的具体方式也不唯一。预设区域可根据实际情况进行选取,可以是将整个画布作为预设区域,也可是将部分画布作为预设区域。

在一个实施例中,图像缓存模块110获取到画布预设区域的部分和画布在屏幕的当前显示部分之后缓存至显卡内存中,得到对应的第一缓存图像和第二缓存图像。将图像直接缓存到显存中,利用显卡的硬件加速特性进行图像合成,节省了内存和CPU占用。

在一个实施例中,图像缓存模块110包括第一图像缓存单元和第二图像缓存单元。

第一图像缓存单元用于当检测到输入的画布显示操作指令时,获取画布预设区域的部分并位图缓存至显卡内存中,得到第一缓存图像。

第二图像缓存单元用于当检测到输入的画布显示操作指令时,获取画布在屏幕的当前显示部分并缓存至显卡内存中,得到第二缓存图像。

在缓存画布预设区域的部分至显卡内存时,使用较低质量的位图缓存,避免当需要缓存的部分过大时占用过多显卡内存,提高了显卡性能。

坐标获取模块120用于根据画布显示操作指令,分别获取与屏幕坐标对应的第一缓存图像和第二缓存图像上的待显示坐标。

根据画布显示操作指令可确定屏幕坐标与两个缓存图像移动后坐标的对应关系,根据该对应关系便可找到两个缓存图像上与该屏幕坐标对应的待显示坐标。

颜色提取模块130用于根据第一缓存图像和第二缓存图像上的待显示坐标所对应位置的颜色,得到对应屏幕坐标的颜色。

在获取到第一缓存图像和第二缓存图像上的待显示坐标之后,直接可根据待显示坐标提取对应位置的颜色,并进而计算得到屏幕坐标的颜色。具体地,颜色包括颜色值和透明度,根据待显示坐标所对应位置的颜色值和透明度,可确定对应屏幕坐标的颜色值和透明度,从而确定屏幕坐标的颜色。

在一个实施例中,颜色提取模块130包括坐标判断单元、第一提取单元、第二提取单元和第三提取单元。

坐标判断单元用于判断第一缓存图像和第二缓存图像上的待显示坐标是否超出对应缓存图像的图像边界。

第一提取单元用于当第一缓存图像和第二缓存图像上的待显示坐标均超过对应缓存图像的图像边界时,将对应屏幕坐标设置为透明色。

第二提取单元用于当第一缓存图像和第二缓存图像上的待显示坐标存在一个未超出对应缓存图像的图像边界时,获取该未超出对应缓存图像的图像边界的坐标所对应位置的颜色,得到对应屏幕坐标的颜色。

第三提取单元用于当第一缓存图像和第二缓存图像上的待显示坐标均未超出对应缓存图像的图像边界时,对第一缓存图像和第二缓存图像上的待显示坐标对应位置的颜色进行叠加,得到对应屏幕坐标的颜色。

本实施例中,第三提取单元采用透明度叠加公式进行叠加,将第二缓存图像叠加到第一缓存图像上,得到对应屏幕坐标的颜色,具体为:

透明度=1-(1-透明度1)*(1-透明度2)

颜色值=颜色值2*透明度2*(1-透明度1)+颜色值1*透明度1

其中,颜色值1和透明度1分别为第一缓存图像上的待显示坐标对应位置的颜色值和透明度,颜色值2和透明度2分别为第二缓存图像上的待显示坐标对应位置的颜色值和透明度。由此可分别计算得到屏幕坐标的透明度和颜色值,从而确定屏幕坐标的颜色。

图像合成模块140用于根据各屏幕坐标的颜色得到与画布显示操作指令对应的叠加图像并输出至屏幕进行显示。

遍历屏幕上显示区域的每一个坐标,计算得到各屏幕坐标的颜色,即可在屏幕上显示完整的叠加图像。

坐标获取模块120、颜色提取模块130和图像合成模块140即是在操作进行中时,将画布当前显示区域和预设区域进行缓存,在渲染时对两个缓存图像进行合成显示。可以理解,坐标获取模块120、颜色提取模块130和图像合成模块140的合成显示操作也可以是在显卡中进行,利用显卡强大的并行计算能力,提高合成效率。

上述画布显示控制系统,在检测到画布显示操作指令后,同时获取画布预设区域的部分和画布在屏幕的当前显示部分进行缓存,并结合画布显示操作指令对两个缓存图像进行合成得到叠加图像显示在屏幕上,避免了在控制画布显示的过程中出现空白而影响用户观看,提高了观看便利性。在整个控制过程中,画布对用户来说始终完全显示,只是在周围部分区域切换了清晰度,用户不会感受到画面闪烁感。

在一个实施例中,如图4所示,画布显示控制系统还包括指令检测模块150。

指令检测模块150用于在图像合成模块140根据各屏幕坐标的颜色得到与画布显示操作指令对应的叠加图像并输出至屏幕进行显示之后,检测画布显示操作指令是否结束;若否,则获取幕布显示的图像进行缓存,得到新的第二缓存图像,并控制坐标获取模块120再次根据画布显示操作指令,分别获取与屏幕坐标对应的第一缓存图像和所述第二缓存图像上的待显示坐标。

在检测到画布显示操作指令结束则记为操作结束,判断画布显示操作指令是否结束的方式并不唯一。可另建一个线程中伺机重新缓存当前显示区域部分,具体可以是在用户操作和渲染线程空闲时执行,也可以是时时执行。本实施例中,指令检测模块150在用户操作和渲染线程空闲时获取幕布显示的图像进行缓存,优化资源。

本实施例中,在根据画布显示操作指令对画布进行显示控制时,实时获取画布当前显示部分对第二缓存图像进行更新,以便用户在操作的过程中,主要区域始终是清晰的,以提高显示效果。

在一个实施例中,继续参照图4,画布显示控制系统还包括缓存清除模块160。

缓存清除模块160用于当画布显示操作指令结束时,清除缓存的缓存图像。在当操作结束时,清除缓存的第一缓存图像和第二缓存图像,避免占用缓存空间,以便下次根据用户操作进行显示控制,操作便利性。

以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1