WO2019170110A1 - 图片绘制方法及相关产品 - Google Patents

图片绘制方法及相关产品 Download PDF

Info

Publication number
WO2019170110A1
WO2019170110A1 PCT/CN2019/077196 CN2019077196W WO2019170110A1 WO 2019170110 A1 WO2019170110 A1 WO 2019170110A1 CN 2019077196 W CN2019077196 W CN 2019077196W WO 2019170110 A1 WO2019170110 A1 WO 2019170110A1
Authority
WO
WIPO (PCT)
Prior art keywords
thread
image data
format
worker thread
graphic buffer
Prior art date
Application number
PCT/CN2019/077196
Other languages
English (en)
French (fr)
Inventor
舒茧
Original Assignee
Oppo广东移动通信有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Oppo广东移动通信有限公司 filed Critical Oppo广东移动通信有限公司
Publication of WO2019170110A1 publication Critical patent/WO2019170110A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • the embodiment of the present application provides a picture drawing method and related products, which can solve the problem of the picture display, improve the speed of drawing the picture of the mobile terminal, and reduce the time taken for the picture drawing.
  • the embodiment of the present application provides a picture drawing method, which is applied to a mobile terminal, where the mobile terminal runs a GL thread invoked by a graphics splicing program interface OpenGL ES and a working thread other than the GL thread, Methods include:
  • the embodiment of the present application provides a computer readable storage medium, wherein the computer readable storage medium stores a computer program for electronic data exchange, wherein the computer program causes the computer to execute the embodiment of the present application.
  • FIG. 5 is a schematic structural diagram of a mobile terminal according to an embodiment of the present disclosure.
  • the processor is a control center for a smartphone that connects various portions of the entire smartphone using various interfaces and lines, by running or executing software programs and/or modules stored in memory 133, and recalling stored in memory 133. Data, perform various functions of the smartphone and process data to monitor the smartphone as a whole.
  • the processor may include one or more processing units, such as an integrated application processor AP and a baseband processor (also known as a baseband chip, baseband), etc., wherein the application processor mainly processes an operating system, a user interface, an application, and the like.
  • the baseband processor primarily handles wireless communications. It can be understood that the above baseband processor may also not be integrated into the processor.
  • the memory 133 can be, for example, a random access memory (RAM), a flash memory, a read only memory (ROM), an erasable programmable read only memory (EPROM), and an electrically erasable memory.
  • RAM random access memory
  • ROM read only memory
  • EPROM erasable programmable read only memory
  • EEPROM Electrically erasable memory.
  • registers hard disk, removable hard disk, compact disk read only (CD-ROM) or any other form of storage medium known in the art.
  • the Android system includes a display system.
  • the architecture of the display system is as shown in FIG. 1C.
  • the display system includes an interface drawing service (SurfaceFlinger) and a graphic splicing program interface (OpenGL for Embedded Systems, OpenGL).
  • ES graphic splicing program interface
  • EGL interface EGL interface
  • localization window NativeWindow EGL interface
  • hardware abstraction layer Gralloc hardware abstraction layer
  • the SurfaceFlinger holds a GraphicPlane member variable to describe the display, and an instance of the display hardware DisplayHardware object.
  • OpenGL ES is an interface protocol, a general-purpose function library that needs to be "localized" on different platform systems - that is, it is associated with a window system on a specific platform to ensure that it works properly.
  • NativeWindow is the window that localizes OpenGL ES on the Android platform
  • the EGL interface is the intermediate adaptation translation layer for configuring the local window for OpengGL ES.
  • the embodiment of the present application provides a picture drawing method for a mobile terminal, where the mobile terminal runs a GL thread invoked by a graphics splicing program interface OpenGL ES and a working thread other than the GL thread.
  • the worker thread writes the image data of the target picture to the graphics buffer Graphic Buffer; the worker thread encapsulates the image data written in the Graphic Buffer into a texture map Texture format recognized by the GL thread; the GL thread
  • the image data of the Texture format is used to perform a drawing operation for the target picture.
  • the problem of the card display displayed in the picture is solved, which is beneficial to improving the speed of drawing the picture of the mobile terminal and reducing the time taken for drawing the picture.
  • the worker thread writes image data of the target picture into a graphics buffer, a Graphic Buffer.
  • the graphics splicing interface OpenGL ES is the OpenGL version for embedded systems.
  • the multi-picture display interface may be an annual photo display interface in the album, and the number of the photos may be ten sheets, one hundred sheets, one thousand sheets, etc., which are not limited herein.
  • the format of the plurality of data modules that complete the data writing operation is the Graphic Buffer image data recognized by the localization window NativeWindow, and then the Texture data format recognized by the GL thread, so in the data encapsulation process, as shown in FIG. 1C, first The Graphic Buffer image data is encapsulated into image data of the EGLImage format recognized by the intermediate adaptation translation layer EGL interface, and then the image data of the EGLImage format is encapsulated into a Texture data format recognized by the GL thread.
  • the mobile terminal masquerades the image data of the working thread to complete the data writing operation through the data encapsulation as the Texture data format that can be recognized by the GL thread, and tricks the GL thread to perform image drawing operation on the image data, which is beneficial to realize.
  • the thread-sharing operation of the data write operation and the image drawing operation solves the blocking problem of the GL thread.
  • the blocking problem is beneficial to improve the drawing speed of the GL thread and reduce the drawing time of the image, and the OpenGL ES calls the GL thread to only recognize the specified Texture format when performing the drawing operation on the image data, so the data writing operation is completed.
  • the data format is changed to the Texture format by data encapsulation without changing the data, which solves the problem of realizing the picture drawing operation after the data writing operation is separated, and realizes the data writing operation and the picture drawing operation.
  • the successful separation effectively solves the problem of stuck in the picture drawing operation.
  • the worker thread sends an address identifier of the image data of the Texture format to the GL thread, and the address identifier is used by the GL thread to use image data of the Texture format according to an address obtained by identifying the address identifier.
  • the worker thread sends the address identifier of the image data encapsulated in the Texture format to the GL thread, so that the GL thread can conveniently find the image data to be drawn instead of sending the image data to the fixed data of the GL thread.
  • the address it helps to reduce data consumption and reduce power consumption.
  • the worker thread writes the image data in the format of a bitmap file Bitmap to the Graphic Buffer.
  • the worker thread first creates the Graphic Buffer with the data amount matching in the write operation, instead of randomly creating the fixed size Graphic Buffer, which is beneficial to improve the utilization of the memory cache, and the Graphic Buffer is created by the worker thread. , further reducing the burden of the GL thread, effectively solving the blocking problem of the GL thread.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本申请实施例公开了一种图片绘制方法及相关产品。该方法应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,方法包括:所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。本申请实施例有利于解决图片显示的卡顿问题,提高移动终端图片绘制的速度,减少图片绘制的耗时。

Description

图片绘制方法及相关产品 技术领域
本申请涉及移动终端技术领域,具体涉及图片绘制方法及相关产品。
背景技术
随着移动终端(例如,智能手机)相关技术的快速发展,越来越多的应用被安装在移动终端中,如相机类应用、支付类应用等,其中,随着人们生活水平的提升,人们对相机类应用的使用越来越频繁。
目前,在相机类应用中,人们对相册显示的性能需求越来越高,然而,当显示图片的数据量较大或者同时显示的图片较多时,如何提升图片的显示速度,解决图片的显示卡顿现象成为亟待解决的问题。
发明内容
本申请实施例提供了图片绘制方法及相关产品,可以解决图片显示的卡顿问题,提高移动终端图片绘制的速度,减少图片绘制的耗时。
第一方面,本申请实施例提供一种图片绘制方法,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述方法包括:
所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
第二方面,本申请实施例提供一种图片绘制装置,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置包括写入单元、封装单元和执行单元,其中,
所述写入单元,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述封装单元,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述执行单元,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
第三方面,本申请实施例提供一种移动终端,包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行本申请实施例第一方面任一方法中的步骤的指令。
第四方面,本申请实施例提供了一种计算机可读存储介质,其中,上述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,上述计算机程序使得计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面任一方法中所描述的部分或全部步骤。该计算机程序产品可 以为一个软件安装包。
附图说明
下面将对本申请实施例所涉及到的附图作简单地介绍。
图1A是本申请实施例提供的一种智能手机的结构示意图;
图1B是本申请实施例提供的一种智能手机的代码运行空间的示例图;
图1C是本申请实施例提供的一种安卓系统中显示系统的架构图;
图2是本申请实施例提供的一种图片绘制方法的流程示意图;
图3是本申请实施例公开的一种图片绘制方法的流程示意图;
图4是本申请实施例公开的一种图片绘制方法的流程示意图;
图5是本申请实施例公开的一种移动终端的结构示意图;
图6A是本申请实施例公开的一种图片绘制装置的功能单元组成框图;
图6B是本申请实施例公开的另一种图片绘制装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的移动终端可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,MS),终端设备(terminal device)等等。为方便描述,上面提到的设备统称为移动终端。本发明实施例所涉及到的嵌入式操作系统是对硬件资源进行统一管理,并向用户提供业务接口的软件系统。
以移动终端中的智能手机为例,示例性的,图1A是本申请实施例提供了一种智能手机100的结构示意图,上述智能手机100包括:壳体110、触控显示屏120、主板130、电池140和副板150,主板130上设置有前置摄像头131、处理器132、存储器133、电源管理芯片134、射频系统135等,副板上设置有振子151、一体音腔152、VOOC闪充接口153。
所述处理器是智能手机的控制中心,利用各种接口和线路连接整个智能手机的各个部分,通过运行或执行存储在存储器133内的软件程序和/或模块,以及调用存储在存储器133内的数据,执行智能手机的各种功能和处理数据,从而对智能手机进行整体监控。该处理器可包括一个或多个处理单元,如可集成应用处理器AP和基带处理器(又称为基带芯片、基带)等,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器中。该处理器例 如可以是中央处理器(Central Processing Unit,CPU),通用处理器,数字信号处理器(Digital Signal Processor,DSP),专用集成电路(Application-Specific Integrated Circuit,ASIC),现场可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。上述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
所述存储器133可用于存储软件程序以及模块,处理器通过运行存储在存储器133的软件程序以及模块,从而执行智能手机的各种功能应用以及数据处理。存储器133可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序等;存储数据区可存储根据智能手机的使用所创建的数据等。此外,存储器133可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。该存储器133例如可以是随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质。
图1B是本申请实施例提供的一种智能手机的代码运行空间的示例图,目前智能手机等移动终端一般设置有程序运行空间,该程序运行空间包括用户空间和操作系统空间,其中,用户空间运行有一个或多个应用程序,该一个或多个应用程序为移动终端安装的第三方应用程序,操作系统空间运行有移动终端的操作系统。该移动终端具体可以运行安卓Android系统、苹果公司开发的移动操作系统iOS等,此处不做唯一限定。
以上述移动终端运行有Android系统为例,Android系统中包括显示系统,显示系统的架构如图1C所示,该显示系统包括界面绘制服务(SurfaceFlinger)、图形拼接程序接口(OpenGL for Embedded Systems,OpenGL ES)、EGL接口、本地化窗口NativeWindow和硬件抽象层Gralloc。其中,该SurfaceFlinger中持有一个GraphicPlane成员变量来描述显示屏,以及一个显示屏硬件DisplayHardware对象实例。OpenGL ES为一个接口协议,即一个通用的函数库,在不同的平台系统上需要被“本地化”——即把它与具体平台上的窗口系统建立起关联,这样才能保证它正常工作。其中,NativeWindow就是将OpenGL ES在Android平台上本地化的窗口,而EGL接口是为OpengGL ES配置本地窗口的中间适配翻译层。
一般设计中,以移动终端的相册显示的业务为例,在嵌入式系统中,相册的显示包括了相片数据的上传写入操作,相片的绘制操作,相片的显示操作等,其中,相片数据的上传写入操作,相片的绘制操作使用了OpenGL ES中的相关函数调用GL线程来实现,其中,当显示的相片数据量较大或者同时显示的相片数量较多等情况下,在通过OpenGL ES进行相片数据的上传写入操作时,会阻塞GL线程,导致相片显示出现严重的卡顿现象,而且显示的速度慢,并且,在动态修改已显示的相片时,需要将修改后的数据重新上传至OpenGL ES进行显示,进一步导致了GL线程的阻塞,其实,相片数据的上传写入操作可以不需要通过OpenGL ES中的函数,而是相片的绘制操作必须要使用到OpenGL ES中的相关函数,因此,针对这一情况,对相册显示的业务提出如下申请。
针对上述情况,本申请实施例提出一种针对移动终端的图片绘制方法,移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,该方法中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。解决了图 片显示的卡顿问题,有利于提高移动终端图片绘制的速度,并减少图片绘制的耗时。
下面结合附图对本申请实施例进行介绍。
请参阅图2,图2是本申请实施例提供了一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,如图所示,本图片绘制方法包括:
S201,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer。
其中,图形拼接程序接口OpenGL ES为用于嵌入式系统的OpenGL版本。
其中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer的触发条件可以是多种多样的,例如可以是检测到任意程序针对任一图片的显示操作,或者可以是检测到相册应用针对某一图片的修改生成新图片的操作等,在此不做限定。
其中,所述移动终端工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer之前,检测到针对所述目标图片的显示操作,并接收由上层应用程序发送的所述目标图片的图像数据,该图像数据的格式为位图文件Bitmap。
其中,执行所述目标图片的图像数据写入Graphic Buffer操作的工作线程可以是一个,也可以是多个工作线程将图像数据分区域,共同执行图像数据的写入Graphic Buffer操作,在此不做限定。
其中,所述图像缓存区可以是由GL线程创建的,也可以是由工作线程创建的,在此不做唯一限定。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
其中,所述前台运行有相册应用程序为当前显示屏显示的应用程序,以及当前用户正在操作的应用程序。
其中,所述多图显示界面可以为相册中的年度照片显示界面,照片的数量可以为十张,百张,千张等,在此不作限定。
可见,本示例中,在移动终端前台运行相册应用程序,且运行界面包括多图显示界面时,使用该图片绘制方法,使用工作线程执行图像数据的写入操作,有利于提升多图片同时显示场景的显示速度,解决图片显示卡顿问题。
S202,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式。
在一个可能的示例中,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,包括:
所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;
所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
其中,完成数据写入操作的多个数据模块的格式为上述本地化窗口NativeWindow识别的Graphic Buffer图像数据,然后GL线程识别的Texture数据格式,因此在数据封装过程中,如图1C所示,首先将Graphic Buffer图像数据封装为中间适配翻译层EGL接口识别的EGLImage格式的图像数据,然后将EGLImage格式的图像数据封装为GL线程识别的Texture数据格式。
可见,本示例中,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的 阻塞问题。
S203,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
其中,所述GL线程获取工作线程封装完成的Texture格式的图像数据,使用OpenGL ES中的专属函数对图像数据执行绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,所述方法还包括:
所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
可见,本示例中,工作线程将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
在一个可能的示例中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
其中,所述图像数据的数据量越大,创建的图形缓存区越大,所述数据量与Graphic Buffer的大小的关系可以由开发工作人员在移动终端出厂前根据经验进行设定的。
可见,本示例中,工作线程在写入操作中首先自己创建于数据量匹配的Graphic Buffer,而不是随意创建固定大小的Graphic Buffer,有利于提升显存缓存的利用率,而且由工作线程创建Graphic Buffer,进一步降低了GL线程的负担,有效解决了GL线程的阻塞问题。
在一个可能的示例中,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
所述工作线程获取格式为位图文件Bitmap的所述图像数据;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
可见,本示例中,工作线程将图像数据写入GL线程创建的所述Graphic Buffer,而不是由工作线程自主创建Graphic Buffer,减少了数据写入完成后GL线程查找数据的时间消耗,有利于提升后期GL线程绘制目标图片的速度。
在一个可能的示例中,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer,包括:
所述工作线程对所述Graphic Buffer启动读写锁;
所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;
所述工作线程关闭所述读写锁。
可见,本示例中,移动终端在调用线程将图像数据写入缓存区时,将该线程对应的缓存区域启动读写锁,仅仅针对该线程写入的数据的缓存区启动读写锁,有利于提升线程的数据写入成功率,在启动读写锁时并不是针对GL线程创建的整体缓存区域启动读写锁,对后期移动终端针对不同区域的数据进行修改时,而不需要对所有数据进行重新写入操作,有利于提升数据修改后的写入的速度。
与上述图2所示的实施例一致的,请参阅图3,图3是本申请实施例提供的一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程。如图所示,本图片绘制方法包括:
S301,所述工作线程获取格式为位图文件Bitmap的图像数据。
S302,所述工作线程创建与所述图像数据的数据量匹配的图形缓存区Graphic Buffer。
S303,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
S304,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据。
S305,所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有Texture格式的图像数据。
S306,所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程。
S307,所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据以执行针对目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
此外,工作线程在写入操作中首先自己创建于数据量匹配的Graphic Buffer,而不是随意创建固定大小的Graphic Buffer,有利于提升显存缓存的利用率,而且由工作线程创建Graphic Buffer,进一步降低了GL线程的负担,有效解决了GL线程的阻塞问题。
此外,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的阻塞问题,并且将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
与上述图2所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种图片绘制方法的流程示意图,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程。如图所示,本图片绘制方法包括:
S401,当所述移动终端的前台运行有相册应用程序时,所述工作线程获取格式为位图文件Bitmap的图像数据。
其中,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
S402,所述GL线程创建图形缓存区Graphic Buffer,并将所述Graphic Buffer的地址标识发送给所述工作线程。
S403,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
S404,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据。
S405,所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有Texture格式的图像数据。
S406,所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程。
S407,所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据以执行针对目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
此外,在移动终端前台运行相册应用程序,且运行界面包括多图显示界面时,使用该图片绘制方法,使用工作线程执行图像数据的写入操作,有利于提升多图片同时显示场景的显示速度,解决图片显示卡顿问题,而且将图像数据写入GL线程创建的所述Graphic Buffer,而不是由工作线程自主创建Graphic Buffer,减少了数据写入完成后GL线程查找数据的时间消耗,有利于提升后期GL线程绘制目标图片的速度。
此外,移动终端通过将工作线程在NativeWindow完成数据写入操作的图像数据通过数据封装伪装为GL线程可以识别的Texture数据格式,骗取GL线程对图像数据进行图像绘制操作,有利于实现数据写入操作与图像绘制操作的分线程操作,解决了GL线程的阻塞问题,并且将封装为Texture格式的图像数据的地址标识发送给GL线程,使GL线程可以便捷的找到需要绘制的图像数据,而不是将图像数据发送到GL线程固定使用的数据地址中,有利于减少数据量消耗,降低功耗。
与上述图2、图3、图4所示的实施例一致的,请参阅图5,图5是本申请实施例提供的 一种移动终端的结构示意图,该所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,而且,该移动终端运行有一个或多个应用程序和操作系统,如图所示,该移动终端包括处理器、存储器、通信接口以及一个或多个程序,其中,上述一个或多个程序不同于上述一个或多个应用程序,且上述一个或多个程序被存储在上述存储器中,并且被配置由上述处理器执行,上述程序包括用于执行以下步骤的指令;
控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,在控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
在这个可能的示例中,上述程序还包括用于执行以下步骤的指令:控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述程序中的指令具体用于执行以下操作:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件 Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,移动终端为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对移动终端进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用集成的单元的情况下,图6A示出了上述实施例中所涉及的图片绘制装置的一种可能的功能单元组成框图。图片绘制装置600应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置600包括写入单元601、封装单元602和执行单元603,其中,
所述写入单元601,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
所述封装单元602,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
所述执行单元603,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
可以看出,本申请实施例中,移动终端的工作线程首先将目标图片的图像数据写入图形缓存区Graphic Buffer,其次,工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,最后,GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。可知,由于数据写入操作不需要调用OpenGL ES来实现,因此,移动终端将耗时严重的数据写入操作从OpenGL ES调用的GL线程中分离出来,由其他工作线程来完成,改善了GL线程的阻塞问题,有利于提升GL线程的图片绘制速度,降低了图片绘制耗时,而且OpenGL ES调用GL线程对图像数据执行绘制操作时只能识别指定的Texture格式,因此,在数据写入操作完成之后,通过数据封装在不改变数据的情况下,将数据的数据格式改变为Texture格式,解决了在数据写入操作分离之后,实现图片绘制操作的问题,实现了数据写入操作与图片绘制操作的成功分离,有效解决了图片绘制操作的卡顿问题。
在一个可能的示例中,在控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述封装单元602具体用于:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
在这个可能的示例中,如图6B所示,所述图片绘制装置600还包括发送单元604,其中,
所述发送单元604,用于所述执行单元控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
在一个可能的示例中,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述写入单元601具体用于:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
在一个可能的示例中,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
需要注意的是,本申请装置实施例所描述的图片绘制装置是以功能单元的形式呈现。这里所使用的术语“单元”应当理解为尽可能最宽的含义,用于实现各个“单元”所描述功能的对象例如可以是集成电路ASIC,单个电路,用于执行一个或多个软件或固件程序的处理器(共享的、专用的或芯片组)和存储器,组合逻辑电路,和/或提供实现上述功能的其他合适的组件。
具体来说,上述写入单元601、封装单元602和执行单元603可以是移动终端的处理器,发送单元604可能是内部通信接口。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括移动终端。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括移动终端。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种 逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本申请的限制。

Claims (20)

  1. 一种图片绘制方法,其特征在于,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述方法包括:
    所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
    所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
    所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
  2. 根据权利要求1所述的方法,其特征在于,所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式,包括:
    所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;
    所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
  3. 根据权利要求2所述的方法,其特征在于,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,所述方法还包括:
    所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
  4. 根据权利要求1-3任一项所述的方法,其特征在于,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
    所述工作线程获取格式为位图文件Bitmap的所述图像数据;
    所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;
    所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
  5. 根据权利要求1-3任一项所述的方法,其特征在于,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer,包括:
    所述工作线程获取格式为位图文件Bitmap的所述图像数据;
    所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
  6. 根据权利要求4或5所述的方法,其特征在于,所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer,包括:
    所述工作线程对所述Graphic Buffer启动读写锁;
    所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;
    所述工作线程关闭所述读写锁。
  7. 根据权利要求1-6任一项所述的方法,其特征在于,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
  8. 根据权利要求1-7任一项所述的方法,其特征在于,所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer之前,所述方法还包括:
    检测到针对相册应用程序中所述目标图片的待显示操作;
    所述工作线程接收来自所述相册应用程序的所述目标图片的所述图像数据,所述图像数据的格式为所述位图文件Bitmap。
  9. 根据权利要求1-8任一项所述的方法,其特征在于,所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作,包括:
    所述GL线程获取所述工作线程封装完成的所述Texture格式的图像数据;
    所述GL线程通过所述OpenGL ES中的第一函数对所述Texture格式的图像数据执行绘制操作。
  10. 一种图片绘制装置,其特征在于,应用于移动终端,所述移动终端运行有图形拼接程序接口OpenGL ES调用的GL线程和除所述GL线程之外的工作线程,所述图片绘制装置包括写入单元、封装单元和执行单元,其中,
    所述写入单元,用于控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer;
    所述封装单元,用于控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式;
    所述执行单元,用于控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作。
  11. 根据权利要求10所述的装置,其特征在于,在控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为所述GL线程识别的纹理贴图Texture格式方面,所述封装单元具体用于:控制所述工作线程将写入所述Graphic Buffer的所述图像数据封装为EGL接口识别的具有EGLImage格式的图像数据;以及用于控制所述工作线程将所述具有EGLImage格式的图像数据封装为所述GL线程识别的具有所述Texture格式的图像数据。
  12. 根据权利要求11所述的装置,其特征在于,所述图片绘制装置还包括发送单元,其中,
    所述发送单元,用于所述执行单元控制所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作之前,控制所述工作线程将所述Texture格式的图像数据的地址标识发送给所述GL线程,所述地址标识用于所述GL线程根据识别所述地址标识获取的地址使用所述Texture格式的图像数据。
  13. 根据权利要求10-12任一项所述的装置,其特征在于,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程创建与所述图像数据的数据量匹配的所述Graphic Buffer;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer。
  14. 根据权利要求10-12任一项所述的装置,其特征在于,在控制所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程获取格式为位图文件Bitmap的所述图像数据;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述GL线程创建的所述Graphic Buffer。
  15. 根据权利要求13或14所述的装置,其特征在于,在控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer方面,所述写入单元具体用于:控制所述工作线程对所述Graphic Buffer启动读写锁;以及用于控制所述工作线程将所述格式为位图文件Bitmap的图像数据写入所述Graphic Buffer;以及用于控制所述工作线程关闭所述读写锁。
  16. 根据权利要求10-15任一项所述的装置,其特征在于,所述移动终端的前台运行有相册应用程序,所述相册应用程序的运行界面包括多图显示界面,所述多图显示界面中待显示照片的数量大于预设数量阈值。
  17. 根据权利要求10-16任一项所述的装置,其特征在于,所述写入单元在所述工作线程将目标图片的图像数据写入图形缓存区Graphic Buffer之前,还用于:检测到针对相册应用程序中所述目标图片的待显示操作;控制所述工作线程接收来自所述相册应用程序的所 述目标图片的所述图像数据,所述图像数据的格式为所述位图文件Bitmap。
  18. 根据权利要求10-17任一项所述的装置,其特征在于,在所述GL线程使用所述Texture格式的图像数据以执行针对所述目标图片的绘制操作方面,所述执行单元具体用于:控制所述GL线程获取所述工作线程封装完成的所述Texture格式的图像数据;以及用于控制所述GL线程通过所述OpenGL ES中的第一函数对所述Texture格式的图像数据执行绘制操作。
  19. 一种移动终端,其特征在于,包括处理器、存储器,所述存储器存储有程序,所述处理器用于调用所述程序以执行如权利要求1-9任一项所述的方法。
  20. 一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-9任一项所述的方法。
PCT/CN2019/077196 2018-03-09 2019-03-06 图片绘制方法及相关产品 WO2019170110A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810195162.3 2018-03-09
CN201810195162.3A CN108509240B (zh) 2018-03-09 2018-03-09 图片绘制方法及相关产品

Publications (1)

Publication Number Publication Date
WO2019170110A1 true WO2019170110A1 (zh) 2019-09-12

Family

ID=63376318

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/077196 WO2019170110A1 (zh) 2018-03-09 2019-03-06 图片绘制方法及相关产品

Country Status (2)

Country Link
CN (1) CN108509240B (zh)
WO (1) WO2019170110A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108509240B (zh) * 2018-03-09 2020-08-11 Oppo广东移动通信有限公司 图片绘制方法及相关产品
CN110737433B (zh) * 2019-10-16 2023-04-25 李富科 一种c语言程序的图形显示方法及装置
CN112530549B (zh) * 2020-12-03 2023-09-29 武汉联影医疗科技有限公司 图像显示方法、装置和计算机设备
WO2023245494A1 (zh) * 2022-06-22 2023-12-28 云智联网络科技(北京)有限公司 从渲染引擎中获取纹理数据的方法及装置、电子设备
CN115167949B (zh) * 2022-09-08 2022-12-06 西安芯瞳半导体技术有限公司 高版本OpenGL函数适配低版本应用程序的方法、装置及介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191860A1 (en) * 2002-04-05 2003-10-09 Gadepalli Krishna K. Accelerated collaboration of high frame rate applications
CN101021952A (zh) * 2007-03-23 2007-08-22 北京中星微电子有限公司 一种实现三维视频特效的方法及装置
CN104142807A (zh) * 2014-08-02 2014-11-12 合一网络技术(北京)有限公司 基于安卓控件利用OpenGL绘制图像的方法和系统
CN108509240A (zh) * 2018-03-09 2018-09-07 广东欧珀移动通信有限公司 图片绘制方法及相关产品

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9245371B2 (en) * 2009-09-11 2016-01-26 Nvidia Corporation Global stores and atomic operations
US9582849B2 (en) * 2013-10-28 2017-02-28 Vmware, Inc. Method and system to virtualize graphic processing services
CN106340055A (zh) * 2016-08-19 2017-01-18 江苏电力信息技术有限公司 一种基于多线程的OpenGL快速绘制方法
WO2018119602A1 (zh) * 2016-12-26 2018-07-05 深圳前海达闼云端智能科技有限公司 一种渲染方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030191860A1 (en) * 2002-04-05 2003-10-09 Gadepalli Krishna K. Accelerated collaboration of high frame rate applications
CN101021952A (zh) * 2007-03-23 2007-08-22 北京中星微电子有限公司 一种实现三维视频特效的方法及装置
CN104142807A (zh) * 2014-08-02 2014-11-12 合一网络技术(北京)有限公司 基于安卓控件利用OpenGL绘制图像的方法和系统
CN108509240A (zh) * 2018-03-09 2018-09-07 广东欧珀移动通信有限公司 图片绘制方法及相关产品

Also Published As

Publication number Publication date
CN108509240B (zh) 2020-08-11
CN108509240A (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
WO2019170110A1 (zh) 图片绘制方法及相关产品
WO2019170126A1 (zh) 图片绘制方法及相关产品
US10921967B2 (en) Electronic device and method for configuring display thereof
CN107925749B (zh) 用于调整电子设备的分辨率的方法和设备
CN104869305B (zh) 处理图像数据的方法及其装置
EP3160150A1 (en) Electronic device and method for executing function using speech recognition thereof
US20220058772A1 (en) Image Processing Method and Device
US10347166B2 (en) Electronic device and operating method thereof
CN107635078B (zh) 游戏控制方法及设备
CN106648496B (zh) 电子设备及用于控制电子设备的显示器的方法
US10609276B2 (en) Electronic device and method for controlling operation of camera-related application based on memory status of the electronic device thereof
CN107797868B (zh) 资源调整方法及装置
US10999501B2 (en) Electronic device and method for controlling display of panorama image
US9756674B2 (en) Method of transmitting and receiving data of electronic device and electronic device using the method
CN116055773A (zh) 一种多屏协同方法、系统及电子设备
WO2017202175A1 (zh) 一种视频压缩方法、装置及电子设备
KR20150051078A (ko) 전자 장치의 락 스크린 디스플레이 방법 및 그 전자 장치
WO2019076213A1 (zh) 网络控制方法及设备
CN110178111B (zh) 一种终端的图像处理方法及装置
US10212215B2 (en) Apparatus and method for providing metadata with network traffic
KR20150027934A (ko) 다각도에서 촬영된 영상을 수신하여 파일을 생성하는 전자 장치 및 방법
WO2019076254A1 (zh) 游戏应用控制方法及设备
KR102213429B1 (ko) 사운드 제공 방법 및 이를 구현하는 전자 장치
CN107967178B (zh) 资源配置方法和资源配置装置及移动终端和介质
CN113438419B (zh) 相机启动方法、装置和电子设备

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19763777

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 19763777

Country of ref document: EP

Kind code of ref document: A1