CN116501420A - 一种渲染方法、装置、终端设备及介质 - Google Patents
一种渲染方法、装置、终端设备及介质 Download PDFInfo
- Publication number
- CN116501420A CN116501420A CN202210062172.6A CN202210062172A CN116501420A CN 116501420 A CN116501420 A CN 116501420A CN 202210062172 A CN202210062172 A CN 202210062172A CN 116501420 A CN116501420 A CN 116501420A
- Authority
- CN
- China
- Prior art keywords
- view
- configuration item
- color value
- rendering
- filter
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000009877 rendering Methods 0.000 title claims abstract description 89
- 238000003672 processing method Methods 0.000 claims abstract description 63
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 11
- 238000010200 validation analysis Methods 0.000 claims description 7
- 230000006870 function Effects 0.000 description 11
- 238000011068 loading method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 239000003086 colorant Substances 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 101000822695 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C1 Proteins 0.000 description 1
- 101000655262 Clostridium perfringens (strain 13 / Type A) Small, acid-soluble spore protein C2 Proteins 0.000 description 1
- 101000655256 Paraclostridium bifermentans Small, acid-soluble spore protein alpha Proteins 0.000 description 1
- 101000655264 Paraclostridium bifermentans Small, acid-soluble spore protein beta Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006866 deterioration Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000009545 invasion Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
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/451—Execution arrangements for user interfaces
-
- 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
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本公开公开了一种渲染方法、装置、终端设备及介质。所述方法包括:获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;在执行所述视图处理方法时,若配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;渲染添加色值滤镜后的当前视图。利用该方法,能够在执行捕获到的视图处理方法时以视图为粒度进行色值滤镜添加与否的判断,细化了滤镜添加的粒度,同时仅需配置项即可实现终端设备侧的渲染,降低了人力投入成本,提升了渲染效率。
Description
技术领域
本公开实施例涉及计算机技术领域,尤其涉及一种渲染方法、装置、终端设备及介质。
背景技术
随着移动互联网的不断发展,越来越多的人花费更多的时间在终端设备上。在某些特殊的日子里,终端设备在进行应用程序内界面显示时,会将界面置灰。
目前实现页面置灰的手段是后端下发对应的灰色图片以实现终端设备上界面的置灰。然而,通过后端下发灰度图像时,需要工作人员对应用程序内图片进行重新设计,如将原来的彩色图片设计为灰色模式图片,并重新下发,消耗人力,界面置灰效率低。
发明内容
本公开实施例提供了一种渲染方法、装置、终端设备及介质,以提高界面渲染效率。
第一方面,本公开实施例提供了一种渲染方法,应用于终端设备,所述方法包括:
获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染添加色值滤镜后的当前视图。
第二方面,本公开实施例还提供了一种渲染装置,其特征在于,包括:
捕获模块,用于获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
判断模块,用于在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染模块,用于渲染添加色值滤镜后的当前视图。
第三方面,本公开实施例还提供了一种终端设备,包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现本公开实施例提供的渲染方法。
第四方面,本公开实施例还提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现本公开实施例提供的渲染方法。
本公开实施例提供了一种渲染方法、装置、终端设备及介质,首先获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;然后在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;最后渲染添加色值滤镜后的当前视图。利用上述技术方案,能够在执行捕获到的视图处理方法时以视图为粒度进行色值滤镜添加与否的判断,细化了滤镜添加的粒度,同时仅需配置项即可实现终端设备侧的渲染,降低了人力投入成本,提升了渲染效率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例一提供的一种渲染方法的流程示意图;
图2为本公开实施例二提供的一种渲染方法的流程示意图;
图3为本公开实施例二提供的有一种渲染方法的流程示意图;
图4为本公开实施例三提供的一种渲染装置的结构示意图;
图5为本公开实施例四提供的一种终端设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
下述各实施例中,每个实施例中同时提供了可选特征和示例,实施例中记载的各个特征可进行组合,形成多个可选方案,不应将每个编号的实施例仅视为一个技术方案。此外,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
实施例一
图1为本公开实施例一提供的一种渲染方法的流程示意图,该方法可适用于进行视图渲染的情况,该方法可以由渲染装置来执行,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上,在本实施例中终端设备包括但不限于:计算机、笔记本电脑、平板电脑、手机等设备。
终端设备的应用程序在一些特殊的节日,可以通过传递符合国家导向的内容向用户传递正确的价值观。终端设备的应用程序针对一些特定的人,也可以通过传递符合对应人物特征的内容,向用户传输一些信息。如针对去世的人,可以将该人物的图像进行置灰,以寄托哀思。该应用程序可以是基于IOS的应用程序,该应用程序可以实现界面主题渲染。
界面渲染时,可以渲染出不同的颜色,以灰色为例进行说明,其余颜色与灰色渲染同理。
相关技术的应用置灰可以通过后端下发对应的灰色色值和灰白图片,该方案人力成本较大。
1)前端对于关键UI组件预埋动态配置色值的能力。
2)运营配置团队,对于app内原彩色图重新设计,生成灰色模式图片。
3)后端下发对应灰色色值及灰白图片。
通过后端下发对应的灰色色值和灰白图片,这种方案问题较多,问题如下所述:
1)如果app应用内UI组件为本地写死,则该方式无法生效,仅对已经支持配置能力的UI组件生效。不够灵活且灰白能力覆盖不全。
2)需要耗费大量的人力,该方案需要工作人员对app内图片进行重新设计,将原来彩色图片设计为灰色模式图片,并重新下发,消耗人力。
3)覆盖能力不全面,导致app整体视觉效果变差。
为了解决上述技术问题,如图1所示,本公开实施例一提供的一种渲染方法,包括如下步骤:
S110、获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法。
在本实施例中,添加滤镜能力可以理解为终端设备侧对视图添加滤镜的能力。终端设备所安装的应用程序均具有添加滤镜能力,添加滤镜能力是否开启可以由服务端指示,也可以由终端设备侧基于终端设备或应用程序的使用情况自行确定。
在一个实施例中,本公开可以通过配置项指示添加滤镜能力是否开启。配置项可以是从服务器获取的,也可以是从终端设备本地获取的。在配置项从服务器获取时,配置项的获取时机不作限定,可以在终端设备向服务器请求后传输。终端设备向服务器请求的内容不作限定,如可以仅请求配置项,还可以请求应用程序内所需显示的内容。所需显示的内容不作限定视频展示页面。
本实施例中,视图控制器可以用于管理视图,如视图控制器管理着构成应用程序用户界面中的部分视图。每个应用程序至少含有一个视图控制器。每个视图控制器可以包括多个视图。每个视图控制器管理着应用程序的用户界面,以及该界面和底层数据之间的交互。其中,视图控制器包括UIViewController。
视图组件可以表示屏幕上的一块矩形区域,负责渲染区域的内容,并且响应该区域内发生的触摸事件。视图组件包括UIView,UIView可以作为容器对控件进行分组。
本步骤在确定终端设备开启添加滤镜能力后,可以捕获视图处理方法。视图处理方法可以认为是对视图进行处理的方法。视图处理方法可以为视图控制器和视图组件的系统方法。本实施例不对如何捕获视图处理方法进行限定,只要能够获得视图处理方法的控制权,加工处理视图处理方法的执行行为即可,如通过钩子函数,即hook的方式捕获视图处理方法。
视图处理方法可以认为是与视图控制器和视图组件相关的方法,该视图处理方法在执行时,能够获取所加载的所有视图。本实施例不限定视图处理方法的具体内容,只要保证在执行视图处理方法时,能够获取到加载的所有视图即可。
在一个实施例中,所述视图处理方法包括:
视图加载方法和子视图添加方法。
其中,视图加载方法可以认为是保证视图控制器的视图加载完成的方法。子视图添加方法在当前视图添加子视图时调用。当前视图可以认为是执行视图处理方法时当前正在加载的视图。
示例性的,视图加载方法可以为viewDidLoad方法,子视图添加方法可以认为是addSubView方法。
S120、在执行所述视图处理方法时,若配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜。
配置项可以理解为用于配置渲染相关参数的字段。配置项可以为终端设备本地存储的,也可以是从服务器获取的。渲染相关参数可以是与添加色值滤镜相关的参数。应用程序全局可以认为是应用程序整体,即应用程序内所有内容均需要添加色值滤镜。应用程序局部可以认为是应用程序内部分内容需要添加色值滤镜。色值滤镜可以认为是与色值相关的滤镜。色值滤镜包括任一色值的滤镜,如灰色色值滤镜,红色色值滤镜等。色值可以配置在配置内,不同的视图可以对应有不同的色值。视频展示页面可以认为是对视频进行展示的页面,视频展示页面内可以全屏展示视频,也可以通过视频展示页面内的部分区域展示视频。视频展示页面内所包括的视频的数量可以为至少一个。部分区域是视频展示页面内的区域,该区域内可以展示视频。视频展示页面可以包括多个部分区域,用于展示不同视频。
在执行视图处理方法时,所需加载的视图可以被依次加载,当前视图可以认为是当前加载的视图。若当前视图在配置项内,则可以认为当前视图需要添加色值滤镜;否则当前视图无需添加色值滤镜,可以直接渲染。
本公开中每一个视图对应有一个视图图层模型,视图图层模型可以认为是视图的图层模型。本公开在添加色值滤镜时,可以在当前视图的视图图层模型上添加色值滤镜。
添加色值滤镜后的视图的颜色取决于所述色值滤镜中色值。以色值滤镜为灰色滤镜为例,在添加完灰色色值滤镜后渲染出的视图为灰色视图。
在捕获视图处理方法后,本步骤可以执行视图处理方法,保证界面的正常加载。在执行视图处理方法时可以判断需要添加色值滤镜的视图。将需要添加色值滤镜的视图添加色值滤镜。
S130、渲染添加色值滤镜后的当前视图。
在当前视图的视图图层模型添加完色值滤镜后,可以渲染添加色值滤镜后的当前视图。渲染完当前视图后,可以继续加载下一个当前视图,并继续判断下一个当前视图是否在配置项内。
本公开实施例一提供的一种渲染方法,首先获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;然后在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;最后渲染添加色值滤镜后的当前视图。利用该方法能够在执行捕获到的视图处理方法时以视图为粒度进行色值滤镜添加与否的判断,细化了滤镜添加的粒度,同时仅需配置项即可实现终端设备侧的渲染,降低了人力投入成本,提升了渲染效率。
在上述实施例的基础上,提出了上述实施例的变型实施例,在此需要说明的是,为了使描述简要,在变型实施例中仅描述与上述实施例的不同之处。
在一个实施例中,所述配置项包括:第一指示信息和第二指示信息,所述第一指示信息指示所述终端设备是否开启添加滤镜能力,所述第二指示信息指示是否对应用程序全局添加色值滤镜。
在应用程序启动后,获取配置项,然后读取配置项内的第一指示信息确定终端设备是否开启添加滤镜能力。在开启添加滤镜能力时,可以获取第二执行信息确定是否对应用程序全局添加色值滤镜。若是,则将加载的当前视图对应的视图图层模型添加色值滤镜。若否,可以判断所有当前视图判断是否包含在配置项内。
第二指示信息指示是对应用程序全局添加色值滤镜,则在加载视图时对所有当前视图均添加色值滤镜。第二指示信息指示不是对应用程序全局添加色值滤镜,则对应用程序局部添加色值滤镜。判断当前视图是否在配置项内,若是则添加色值滤镜。
配置项或视图白名单可以一直有效或者在一段时间内有效,若在一段时间内有效,配置项内还可以包括生效时间和失效时间。若配置项或视图白名单一直有效,则在应用时可以直接应用,无需进行时间判断。
在一个实施例中,所述配置项还包括:视图白名单;
所述视图白名单中包括有需要添加色值滤镜的视图的标识信息
所述当前视图的标识信息属于所述视图白名单内表示所述当前视图在所述配置项内。
视图白名单中所包括的标识信息可以由开发人员设定,也可以基于实际情况智能确定判断,此处不作限定。在当前视图的标识信息包含在视图白名单中时,可以认为当前视图需要添加色值滤镜。
配置项内还可以包括生效时间和失效时间。生效时间可以认为是开始生效的时间。失效时间可以认为是失效的时间。
在生效时间至失效时间内,终端设备的置灰能力有效。
在一个实施例中,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法,包括:
在添加滤镜能力开启,且当前时间处于所述生效时间至失效时间内时,通过钩子函数捕获视图处理方法,所述生效时间和所述失效时间配置在所述配置项内。
在本实施例中,在执行渲染方法时,也需要判断当前时间是否处于生效时间至失效时间内,若不处于可以直接使用视图的视图图层模型渲染。
在当前时间处于生效时间至失效时间内时,可以基于对应的视图白名单确定需要进行色值渲染的当前视图。
本发明可以先确定添加滤镜能力是否开启,若是,可以确定当前时间是否处于生效时间至失效时间内,若是,则可以判断当前是否在视图白名单内,以完成渲染。当前时间可以认为是当前执行对应方法时刻的时间。
在一个实施例中,所述配置项包含在所述服务器传输的后端数据中,所述后端数据为响应所述终端设备请求信息的数据,所述请求信息包括请求视频展示页面的信息。
请求信息可以认为是终端设备向服务器发送的用于拉取视频展示页面的信息。服务器获取到请求信息后,可以响应请求信息,向终端设备发送后端数据,后端数据中可以包括有配置信息。后端数据中除了包括配置项外,还可以包括也所请求视频展示页面相关的数据,具体内容不作限定。
实施例二
图2为本公开实施例二提供的一种渲染方法的流程示意图,本实施例二在上述各实施例为基础进行具体化。在本实施例中,还具体包括了:若配置项指示对应用程序全局添加色值滤镜,则将所述当前视图所对应视图图层模型添加色值滤镜。
本实施例尚未详尽的内容请参考实施例一。
如图2所示,本公开实施例二提供的一种渲染方法,包括如下步骤:
S210、获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法。
S220、在执行所述视图处理方法时,判断配置项是否指示对应用程序局部添加色值滤镜,若是,执行S230;若否,执行S240。
判断配置项是否指示对应用程序局部添加色值滤镜,可以通过第二指示信息确定。
S230、确定当前加载的视频展示页面内当前视图是否在配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;渲染添加色值滤镜后的当前视图,结束操作。
S240、将所述当前视图所对应视图图层模型添加色值滤镜。
若,配置项的第二指示信息指示应用程序全局进行色值渲染时,可以直接将当前视图对应视图图层模型添加色值滤镜。
本公开实施例二提供的一种渲染方法,具体化了应用程序全局添加色值滤镜的操作。利用该方法,能够实现应用程序级和更细粒度级的视频展示页面渲染,提升了渲染效率,增强了用户使用应用程序的体验。
以下对本公开进行示例性描述,本公开可以利用Objective-c语言的动态性、runtime、Method Swizzle、layer滤镜等原理实现置灰能力。除了置灰能力,该方案还可以支持多种节日主题的适配能力。本公开提供的渲染方法覆盖面广,通过拦截视图处理方法,在layer层级添加色值滤镜,如灰色滤镜,将会对界面内的所有元素生效,包括视频内容,无遗漏UI组件。本公开提供的渲染方法灵活性高,该方案可以通过添加视图白名单、或云端下控制字段的形式,只针对部分视频展示页面或者部分UI组件生效灰色滤镜,置灰方案细粒度化。例如:内容搜索的一个典型场景,对于某个查询的结果,进行置灰(需要置灰的内容可以在配置项内配置,如配置需要置灰的视图的标识信息,标识信息可以唯一标识视图)。其他场景则不进行置灰。其中,视图白名单和控制字段可以包含在配置项内。控制字段包括但不限于第一指示信息、第二指示信息、生效时间和失效时间等。
需要注意的是,需要置灰的视图可以由开发人员自行设定,通过设置置灰不同视图可以实现不同层级的置灰。如全局级别(即应用程序全局均置灰)、查询级别或卡片级别。
本公开提供的渲染方法节省人力,该方案通过端上视图处理方法实现置灰滤镜,无需运营设计团队参与,活动时间内,仅需要研发在云端配置相关字段便可生效,可节省大量人力。性能影响小,通过添加滤镜的方式,相较于图片编解码算法,性能损耗小。应用场景广,该方式对于其他节日性的场景均有应用需求。
本公开提供的渲染方法利用了objective-c语言的动态性,Method Swizzle技术,即在运行时交换视图处理方法。通过该技术可对视图控制器(如UIViewController)及视图组件(如UIView组件)的系统方法进行替换。捕获到视图处理方法之后,在执行视图处理方法基础上,判断当前view是否在云端下发的配置项的白名单中,若在白名单中,则创建色值滤镜,在原始图层模型上增加色值滤镜,并进行渲染。原始图层模型可以认为是当前视图的视图图层模型。其中,配置项包括总开关、开始时间、失效时间和白名单(即视图白名单)。总开关可以由第一指示信息。在第一指示信息指示开启添加滤镜能力时,可以认为总开关为开启。在第一指示信息指示不开启添加滤镜能力时,可以认为总开关关闭。
具体的包括如下步骤:
1)应用启动,获取云端配置项或后端字段(后端字段可以包括视图白名单);
2)hook视图处理方法,如控制器viewDidLoad方法,该方法可保证当前控制器的view加载完成;hook UIView addSubView方法,该方法为在当前view添加子View时调用。
3)在hook方法中,执行视图处理方法,保证界面的正常加载。
4)hook方法中,执行完视图处理方法后,判断当前view是否在配置项白名单当中,若在,则执行置灰方法,创建灰色色值滤镜对象。
5)获取当前View图层模型,并添加灰色色值滤镜。
6)系统渲染呈现添加灰色色值滤镜后的图层。
其中,配置项包括总开关、开始时间、结束时间和白名单。
通过本公开提供的渲染方法,能够实现视频粒度、查询粒度和卡片粒度的置灰。
图3为本公开实施例二提供的有一种渲染方法的流程示意图,参见图3,在应用,即应用程序开启后,可以首先通过第一指示信息确定是否开启置灰能力,即添加滤镜能力,若是,可以hook方法,即捕获视图处理方法。然后拉取白名单即视图白名单。此处拉取白名单的时机可以前置,如确定开启置灰能力时。或hook方法之前。在加载视频展示页面时,针对每个加载到的当前视图可以判断是否在白名单中,即实现判断图层是否在白名单中,若否,渲染当前视图,即渲染原图层;若是,创建灰色色值滤镜,添加滤镜即灰色色值滤镜至视图图层模型。然后渲染添加滤镜,即色值滤镜后的图层。最后展示置灰效果。
如没有开启置灰能力,可以直接加载界面,使用原始图层模型渲染,正常展示界面。
本示例实施例,通过hook方法,捕获系统的原始视图(即当前图层),在原始视图上添加置灰滤镜,不需要研发额外进行适配,不需要运营设计团队重新设计灰色图片或视频,节省大量人力,同时对现有业务零侵入。覆盖面广,通过对原始图层模型添加滤镜的方式,可以对任意图层进行置灰,包括视频类型的图层,保证APP内UI效果风格一致,提升用户体验。灵活性高,该方案可以通过添加白名单的形式对部分UIView图层进行置灰,可以达到卡片级甚至更细化的力度,可以满足绝大多数的置灰场景。可云控实现置灰能力,无需额外投入人力,节约人力成本。对性能影响小,不影响用户体验。应用场景广,支持多种节假日相关的主题皮肤适配。
其中,粒度细体现在可以是应用程序级别、查询级别和卡片级别。若是应用程序级别就把所有view都包括在配置项内。应用程序级别的话,可以用单独的配置字段控制,跟着配置项下发。在第二指示信息指示对应用程序全局添加色值滤镜时,不用判断视图白名单,所有视图都执行置灰操作。
查询粒度是搜索业务侧,在拉起搜索界面的时候,通过请求到的后端数据中携带的配置项,确定哪些查询窗口要置灰。需要置灰的查询窗口内的视图可以包括在视图白名单中。卡片粒度与查询粒度类似,通过后端数据确定哪一卡片需要置灰。视图白名单中包括的内容不作限定,还可以包括需要置灰的界面标识信息、查询窗口的标识信息和卡片的标识信息,以表征需要置灰的内容。
实施例三
图4为本公开实施例三提供的一种渲染装置的结构示意图,该装置可适用于视图渲染的情况,其中该装置可由软件和/或硬件实现,并一般集成在终端设备上。
如图4所示,该装置包括:
捕获模块31,用于获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
判断模块32,用于在执行所述系统方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染模块33,用于渲染添加色值滤镜后的当前视图。
在本实施例中,该装置首先通过捕获模块31获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;然后通过判断模块32在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;最后通过渲染模块33渲染添加色值滤镜后的当前视图。
本实施例提供了一种渲染装置,能够在执行捕获到的视图处理方法时以视图为粒度进行色值滤镜添加与否的判断,细化了滤镜添加的粒度,同时仅需获取配置项即可实现终端设备侧的渲染,降低了人力投入成本,提升了渲染效率。
在一个实施例中,所述配置项包括:第一指示信息和第二指示信息,所述第一指示信息指示所述终端设备是否开启添加滤镜能力,所述第二指示信息指示是否对应用程序全局添加色值滤镜。
在一个实施例中,所述配置项还包括:视图白名单、生效时间和失效时间;
所述视图白名单中包括有需要添加色值滤镜的视图的标识信息;所述白名单在所述生效时间至所述失效时间内有效;
所述当前视图的标识信息属于所述视图白名单内表示所述当前视图在所述配置项内。
在一个实施例中,捕获模块31在所述配置项指示添加滤镜能力开启时,捕获视图处理方法,包括:
在添加滤镜能力开启,且当前时间处于所述生效时间至失效时间内时,通过钩子函数捕获视图处理方法,所述生效时间和所述失效时间配置在所述配置项内。
在一个实施例中,所述视图处理方法包括:
视图加载方法和子视图添加方法。
在一个实施例中,该装置,还包括:添加模块,用于:
若配置项指示对应用程序全局添加色值滤镜,则将所述当前视图所对应视图图层模型添加色值滤镜。
在一个实施例中,所述配置项包含在所述服务器传输的后端数据中,所述后端数据为响应所述终端设备请求信息的数据,所述请求信息包括请求视频展示页面的信息。
上述渲染装置可执行本公开任意实施例所提供的渲染方法,具备执行方法相应的功能模块和有益效果。
实施例四
图5为本公开实施例四提供的一种终端设备的结构示意图。图5示出了适于用来实现本公开实施例的终端设备400的结构示意图。本公开实施例中的终端设备400可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、个人数字助理(Personal DigitalAssistant,PDA)、平板电脑(Portable Android Device,PAD)、便携式多媒体播放器(Portable Media Player,PMP)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图5示出的终端设备400仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。
如图5所示,终端设备400可以包括一个或多个处理装置(例如中央处理器、图形处理器等)401,其可以根据存储在只读存储器(Read-Only Memory,ROM)402中的程序或者从存储装置408加载到随机访问存储器(Random Access Memory,RAM)403中的程序而执行各种适当的动作和处理。一个或多个处理装置401实现如本公开提供的渲染方法。在RAM403中,还存储有终端设备400操作所需的各种程序和数据。处理装置401、ROM 402以及RAM403通过总线404彼此相连。输入/输出(Input/Output,I/O)接口405也连接至总线404。
通常,以下装置可以连接至I/O接口405:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置406;包括例如液晶显示器(Liquid CrystalDisplay,LCD)、扬声器、振动器等的输出装置407;包括例如磁带、硬盘等的存储装置408,存储装置408用于存储一个或多个程序;以及通信装置409。通信装置409可以允许终端设备400与其他设备进行无线或有线通信以交换数据。虽然图5示出了具有各种装置的终端设备400,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置409从网络上被下载和安装,或者从存储装置408被安装,或者从ROM402被安装。在该计算机程序被处理装置401执行时,执行本公开实施例的方法中限定的上述功能。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是,但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
在一些实施方式中,客户端、服务器可以利用诸如超文本传输协议(Hyper TextTransfer Protocol,HTTP)之类的任何当前已知或未来研发的网络协议进行通信,并且可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(LAN),广域网(WAN),网际网(例如,互联网)以及端对端网络(例如,ad hoc端对端网络),以及任何当前已知或未来研发的网络。
上述计算机可读介质可以是上述终端设备400中所包含的;也可以是单独存在,而未装配入该终端设备400中。
上述计算机可读介质存储有一个或者多个计算机程序,当上述一个或者多个程序被处理装置执行时实现如下方法:上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该终端设备执行时,使得该终端设备400:可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该模块本身的限定。
本文中以上描述的功能可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:现场可编程门阵列(FieldProgrammable Gate Array,FPGA)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、专用标准产品(Application Specific Standard Parts,ASSP)、片上系统(System on Chip,SOC)、复杂可编程逻辑设备(Complex Programming logic device,CPLD)等等。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
根据本公开的一个或多个实施例,示例1提供了一种渲染方法,应用于终端设备,所述方法包括:
获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染添加色值滤镜后的当前视图。
根据本公开的一个或多个实施例,示例2根据示例1所述的方法,
所述配置项包括:第一指示信息和第二指示信息,所述第一指示信息指示所述终端设备是否开启添加滤镜能力,所述第二指示信息指示是否对应用程序全局添加色值滤镜。
根据本公开的一个或多个实施例,示例3根据示例1所述的方法,
所述配置项还包括:视图白名单、生效时间和失效时间;
所述视图白名单中包括有需要添加色值滤镜的视图的标识信息;所述白名单在所述生效时间至所述失效时间内有效;
所述当前视图的标识信息属于所述视图白名单内表示所述当前视图在所述配置项内。
根据本公开的一个或多个实施例,示例4根据示例3所述的方法,
在所述配置项指示添加滤镜能力开启时,捕获视图处理方法,包括:
在添加滤镜能力开启,且当前时间处于所述生效时间至失效时间内时,通过钩子函数捕获视图处理方法,所述生效时间和所述失效时间配置在所述配置项内。
根据本公开的一个或多个实施例,示例5根据示例1所述的方法,所述视图处理方法包括:
视图加载方法和子视图添加方法。
根据本公开的一个或多个实施例,示例6根据示例1所述的方法,还包括:
若配置项指示对应用程序全局添加色值滤镜,则将所述当前视图所对应视图图层模型添加色值滤镜。
根据本公开的一个或多个实施例,示例7根据示例1-6任一所述的方法,
所述配置项包含在所述服务器传输的后端数据中,所述后端数据为响应所述终端设备请求信息的数据,所述请求信息包括请求视频展示页面的信息。
根据本公开的一个或多个实施例,示例8提供了一种渲染装置,包括:
捕获模块,用于获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
判断模块,用于在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染模块,用于渲染添加色值滤镜后的当前视图。
根据本公开的一个或多个实施例,示例9提供了一种终端设备,包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如示例1-7中任一项所述的渲染方法。
根据本公开的一个或多个实施例,示例10提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理装置执行时实现如示例1-7中任一项所述的渲染方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种渲染方法,其特征在于,应用于终端设备,所述方法包括:
获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染添加色值滤镜后的当前视图。
2.根据权利要求1所述的方法,其特征在于,所述配置项还包括:视图白名单;
所述视图白名单中包括有需要添加色值滤镜的视图的标识信息;
所述当前视图的标识信息属于所述视图白名单内表示所述当前视图在所述配置项内。
3.根据权利要求1所述的方法,其特征在于,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法,包括:
在添加滤镜能力开启,且当前时间处于所述生效时间至失效时间内时,通过钩子函数捕获视图处理方法,所述生效时间和所述失效时间配置在所述配置项内。
4.根据权利要求1所述的方法,其特征在于,还包括:
若配置项指示对应用程序全局添加色值滤镜,则将所述当前视图所对应视图图层模型添加色值滤镜。
5.根据权利要求1-4任一所述的方法,其特征在于,所述配置项包含在所述服务器传输的后端数据中,所述后端数据为响应所述终端设备请求信息的数据,所述请求信息包括请求视频展示页面的信息。
6.一种渲染装置,其特征在于,包括:
捕获模块,用于获取配置项,在所述配置项指示添加滤镜能力开启时,捕获视图处理方法;
判断模块,用于在执行所述视图处理方法时,若所述配置项指示对应用程序局部添加色值滤镜,则确定当前加载的视频展示页面内当前视图是否在所述配置项内,若是,将所述当前视图所对应视图图层模型添加色值滤镜;
渲染模块,用于渲染添加色值滤镜后的当前视图。
7.根据权利要求6所述的装置,其特征在于,所述捕获模块,具体用于在添加滤镜能力开启,且当前时间处于所述生效时间至失效时间内时,通过钩子函数捕获视图处理方法,所述生效时间和所述失效时间配置在所述配置项内。
8.根据权利要求6所述的装置,其特征在于,还包括:
添加模块,用于:
若配置项指示对应用程序全局添加色值滤镜,则将所述当前视图所对应视图图层模型添加色值滤镜。
9.一种终端设备,其特征在于,包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如权利要求1-7中任一所述的渲染方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,该程序被处理装置执行时实现如权利要求1-7中任一所述的渲染方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210062172.6A CN116501420A (zh) | 2022-01-19 | 2022-01-19 | 一种渲染方法、装置、终端设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210062172.6A CN116501420A (zh) | 2022-01-19 | 2022-01-19 | 一种渲染方法、装置、终端设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116501420A true CN116501420A (zh) | 2023-07-28 |
Family
ID=87317131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210062172.6A Pending CN116501420A (zh) | 2022-01-19 | 2022-01-19 | 一种渲染方法、装置、终端设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116501420A (zh) |
-
2022
- 2022-01-19 CN CN202210062172.6A patent/CN116501420A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111475298B (zh) | 任务处理方法、装置、设备及存储介质 | |
CN109857486B (zh) | 一种程序页面数据的处理方法、装置、设备和介质 | |
CN111246228B (zh) | 直播间礼物资源更新方法、装置、介质及电子设备 | |
CN110647702B (zh) | 一种图片预加载的方法、装置、电子设备及可读介质 | |
CN113521728A (zh) | 云应用的实现方法、装置、电子设备和存储介质 | |
CN114817630A (zh) | 卡片的显示方法、装置、电子设备、存储介质和程序产品 | |
CN112148395A (zh) | 页面显示方法、装置、设备及存储介质 | |
CN111596992B (zh) | 导航栏展示方法、装置和电子设备 | |
CN111147885B (zh) | 直播间互动方法、装置、可读介质及电子设备 | |
CN110134905B (zh) | 一种页面更新显示方法、装置、设备及存储介质 | |
CN112685104A (zh) | 应用程序启动控制方法、装置、电子设备和存储介质 | |
CN116501420A (zh) | 一种渲染方法、装置、终端设备及介质 | |
CN114090938A (zh) | 页面处理方法及设备 | |
CN112650465A (zh) | 终端的控制方法、装置、终端和存储介质 | |
CN111813541A (zh) | 一种任务调度方法、装置、介质和设备 | |
CN111770385A (zh) | 一种卡片显示方法、装置、电子设备及介质 | |
CN110022368B (zh) | 上传图片的超时时间控制方法、装置、设备及存储介质 | |
CN111258670B (zh) | 组件数据的管理方法、装置、电子设备和存储介质 | |
CN118052922A (zh) | 图像渲染方法、装置、可读介质及电子设备 | |
CN116319932A (zh) | 内容推送模型的训练方法、装置、设备及存储介质 | |
CN117412109A (zh) | 设备连接方法、装置、电子设备及计算机存储介质 | |
CN114594951A (zh) | 页面的生成方法、运行方法、装置、可读介质和电子设备 | |
CN116821379A (zh) | 一种多媒体数据处理方法、装置、电子设备及介质 | |
CN116483239A (zh) | 交互方法、装置、电子设备和存储介质 | |
CN117149450A (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 |