一种图片处理方法、装置及设备与流程

文档序号:24398061发布日期:2021-03-26 23:16阅读:65来源:国知局
一种图片处理方法、装置及设备与流程

1.本发明涉及图片处理领域,尤其涉及一种图片处理方法、装置及设备。


背景技术:

2.当前,在即使通信过程中或者网页浏览的过程中,通常都会涉及到图片的查看。传统的图片查看过程包括:下载图片原图存储到磁盘、从磁盘加载并解码下载的原图、渲染图片到显示器。
3.但是,采用上述传统的图片查看方式查看高分辨率图片时,由于高分率的图片的尺寸远大于显示屏幕的尺寸,会导致图片显示不全;并且高分辨率的图片占用的内存较大,会导致图片处理的过程长,即图片打开时间长,在上述这种情况下非常影响用户的体验,为此,亟需一种新的图片处理方法解决上述问题。


技术实现要素:

4.有鉴于此,本发明实施例公开了一种图片处理方法、装置及设备,解决了现有技术中图片显示时间过长、图片显示不完整的问题,并且避免了在单个线程中执行时间过长,导致进程崩溃和卡顿的问题。
5.本发明实施例公开了一种图片处理方法,包括:
6.响应于图片下载指令,调用主进程从服务器下载图片的原图和预先生成的图片的预览图,并在显示器上显示所述预览图;
7.创建子进程;
8.调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
9.调用所述主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
10.可选的,所述在主进程中下载预先生成的图片的预览图,包括:
11.获取显示器的尺寸参数;
12.在所述主进程中下载与所述显示屏幕的尺寸参数相匹配的预览图;其中,服务器中存储有多个不同尺寸的预览图。
13.可选的,所述创建子进程,包括:
14.在所述主进程中创建目标线程;
15.在所述目标线程中创建子进程。
16.可选的,所述在所述子进程中对解码后的图片进行尺寸优化,包括:
17.获取显示器的尺寸参数;
18.基于显示器的尺寸参数,采用矩阵变换的方法对解码后的图片进行缩放处理。
19.可选的,还包括:
20.调用所述子进程将尺寸优化后得到的图片数据存储到所述主进程和子进程的共
享缓存中。
21.可选的,还包括:
22.在所述子进程中开启多个线程,通过多个线程对所述图片的原图进行解码、对解码后的图片进行尺寸优化。
23.可选的,还包括:
24.创建的子进程包括一个或者多个。
25.可选的,在创建的所述子进程包括多个的情况下,所述调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化包括:
26.调用所述第一子进程加载所述图片的原图;
27.通过所述第二子进程对所述图片的原图进行解码;
28.通过所述第三子进程对解码后的图片进行尺寸优化。
29.本发明实施例公开了一种图片的处理装置,包括:
30.主进程执行单元,用于响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;
31.创建单元,用于创建子进程;
32.子进程执行单元,用于调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
33.显示单元,用于调用主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
34.本发明实施例提供了一种终端设备,包括:
35.处理器和存储器;
36.其中,所述处理器用于执行所述存储器中存储的程序;
37.所述存储器用于存储程序,所述程序至少用于:
38.响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;
39.创建子进程;
40.调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
41.调用所述主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
42.本发明实施例公开了一种图片处理方法、装置及设备,包括:响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;创建子进程;调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;调用主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。这样,由于预览图占用的内存空间下,通过加载预览图,可以快速在显示器上显示图片,解决了现有技术中图片显示时间过长的问题,并且通过尺寸优化得到与显示器的尺寸匹配的图像,解决了现有技术中无法显示完整图片的问题。
43.除此之外,本实施例中,将对原图的处理操作从主进程中剥离出来,在新的进程中
执行原图的处理操作,这样大大降低了单个进程中执行图像处理操作的时间,进而大大降低了出现进程卡顿、崩溃等问题发生的几率。
附图说明
44.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
45.图1示出了现有技术中图片处理的方法的示意图;
46.图2示出了本发明实施例提供的一种图片处理方法的流程示意图;
47.图3示出了本发明实施例提供的一种图像处理的场景示意图;
48.图4示出了本发明实施例提供的一种图片处理的又一场景示意图;
49.图5示出了本发明实施例提供的一种图片处理方法的又一流程示意图;
50.图6示出了本发明实施例提供的一种图片处理装置的结构示意图;
51.图7示出了本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
52.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
53.为了解决图片打开时间长、图片显示不全的问题,申请人发现,可以在服务器中预先生成原图的预览图,其中预览图为低分辨率的图片,占用的内存较小。终端在加载原图的同时加载图片的预览图,并预先在显示器上显示图片的预览图,由于低分辨率占用的内存较小,可以快速的在显示器上显示,这样使用户可以在较短的时间内,通过预览图查看图片。并且,对原图进行尺寸的缩放,让图片适应显示器的大小,进而在显示屏幕上显示完整的图片。
54.采用上述改进的图片处理的方法,缩短了图片查看时间、并能在显示器中查看完整的图片,这样在一定程度上提升了用户的体验。但是发明人发现,在图片查看的过程中,仍然会出现整个程序无响应、卡顿、崩溃或者窗口无法移动的情况。
55.申请人经研究发现,在查看高分辨率的图片时,由于高分辨率的原图占用的内存大,图片处理的过程比较复杂,导致图片处理时间长,而且图片处理的整个流程都是在单个进程中执行的(如图1所示)。一般情况下,当一个程序在单个进程中处理时间较长时,就容易导致程序卡顿、无响应的问题,除此之外,由于图片处理的整个操作过程都是在单个进程中执行的,图片处理过程中的任何一个操作出现异常时,也会导致整个程序崩溃,进而导致图片无法查看。
56.基于上述问题,申请人认为可以将图片处理的不同操作过程从一个进程中剥离出来,来解决图片处理由于在单个进程中执行时间较长导致的程序卡顿、无响应等问题。即采用不同的进程执行不同的图片处理操作,降低在单个进程中图片处理操作的时间。
57.本实施例中,图片处理的操作过程包括:图片加载、图片预览、图片解码、图片尺寸优化。
58.为了最大化的避免出现程序无响应、崩溃或者窗口无法移动的问题,可以将每个操作均采用一个进程来执行,但是开启每个进程都需要耗费一定的时间,这就会大大降低了图片处理的效率。
59.而且,申请人经研究发现,图片处理过程中,预览图的显示操作需要尽快的执行,并且最好在一个独立的进程中,这样就不会因为其他操作的异常,导致图片预览也无法正常执行,进而导致图片无法显示。
60.因此,为了在不降低图片处理效率的同时,解决程序无响应、崩溃或者窗口无法移动的问题,申请人经研究发现,可以将图片加载、图片预览操作采用一个进程执行,将图片解码、图片尺寸优化采用另外一个进程来执行这样由于对预览图进行图片预览的操作简单,占用的内存也小,可以快速的在显示器上进行显示,而且图片解码、图片尺寸优化的过程比较复杂,即使该过程中任何一个操作出现异常不会导致整个程序的崩溃,这样图片预览操作仍然可以正常运行,用户可以正常查看图片。这样,不仅能够降低了图片处理的操作在每个进程中执行的时间,能够大大的降低由于操作时间过长而导致的卡顿、无响应的问题发生的几率。
61.接下来对图片处理方法进行详细的介绍:
62.参考图2,示出了本发明实施例提供的一种图片处理方法的流程示意图,在本实施例中,该方法包括:
63.需要说明的是,本实施例的图片处理方法应用于终端。
64.s201:响应于图片下载指令,调用主进程下载预先生成的图片的预览图和图片的原图,并执行所述预览图的预览操作;
65.本实施例中,s201中包含两个操作步骤:
66.一、调用主进程下载预览图和图片的原图;
67.本实施例中,图片下载指令可以是用户发送的或者也可以是自动触发的。
68.终端在接收到图片下载指令后,调用主进程从服务器下载预先生成的图片的预览图和图片的原图。
69.其中,由于显示器的尺寸多样,为了适应不同尺寸的显示器,服务器在接收到终端上传的图片时,生成多个不同尺寸的预览图,以供终端进行下载。
70.需要说明的是,图片的预览图为低分辨率的图像,低分辨率图像的生成,除了依据显示器的尺寸外,还可以依据不同分辨率占用的内存空间,在保证图片清晰度的情况下,尽可能的占用较小的内存空间。
71.其中,终端在从服务器下载预览图时,为了适应终端的显示器,可以根据显示器的尺寸下载,具体的,包括:
72.获取终端的显示器的尺寸参数;
73.在所述主进程中下载与所述显示器的尺寸参数相匹配的预览图;其中,
74.服务器中存储有多个不同存储的预览图。
75.二、调用主进程执行预览图的预览操作。
76.本实施例中,调用预览图的预览操作包括:对预览图进行渲染,以在显示器上显示
所述预览图。
77.本实施例中,主进程下载了预览图和原图后,存储预览图和原图,其中可以基于预先设置的下载路径,存储到目标位置,例如可以存储到终端的磁盘中。
78.s202:创建子进程;
79.本实施例中,为了避免在主线程中执行过长时间的图片处理操作,而导致进程出现崩溃、卡顿的问题,创建新的进程,并在新的线程中执行对原图的处理操作。
80.本实施例中,为了加快图片处理的速率,可以异步启动子进程,例如包括:
81.在所述主进程中创建目标线程;
82.在所述目标线程中创建子进程。
83.其中,在下载图片的预览图和原图以及执行预览图的预览操作,可以是在主进程的一个线程中执行的,例如表示为线程1,创建的目标线程可以理解为新的线程,是不同于线程1线程,在该新的线程中创建子进程。
84.s203:调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;本实施例中,子进程执行对原图的处理操作,具体的操作步骤可以包括:
85.1)加载图片的原图;
86.本实施例中,图片的原图存储在终端的目标位置上,例如存储在磁盘中,因此子进程可以通过访问存储有图片存储的位置,例如访问磁盘,加载图片的原图。
87.2)对图片的原图进行解码;
88.其中,一般下载后的图片是经过编码压缩后的图片数据,不是位图,要把他们渲染后显示器上,就需要对编码后的图片数据进行解码,转换成位图数据。
89.本实施例中,对图片的解码操作可以采用多种方式,本实施例中不进行限定。
90.3)对解码后的图片进行尺寸优化;
91.本实施例中,在图片的分辨率小于或者等于显示器的尺寸时,可以在显示器上完整的显示该图片,但是在图片的尺寸大于显示器的尺寸时,就无法完整的显示图片,尤其是对于高分辨率的图片,图片的分辨率远大于显示器的尺寸,那么显示器中无法完整的显示高分辨率的图片。
92.因此,为了保证在显示器上显示完整的图片,可以对图片的原图的尺寸进行优化,并且,需要基于显示器的尺寸对解码后的图片进行尺寸优化。
93.其中,可以通过多种方法,对图片的尺寸进行优化处理,为了进一步的提升图片处理的效率,减少内存消耗,优选的,可以通过尺寸变换的方式对图片进行尺寸优化。
94.具体的,包括:
95.获取显示器的尺寸参数;
96.基于显示器的尺寸参数,采用矩阵变换的方法对解码后的图片进行缩放处理。
97.s104:调用所述主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
98.本实施例中,对原图处理完成后,需要对处理后的数据进行渲染,并将渲染结果在显示器上进行显示。
99.本实施例中,可以通过多种方式对图片进行渲染,本实施例中不进行限定。
100.需要知道的是,主进程和子进程共享缓存,子进程处理后的数据需要存储到共享缓存中。在本实施例中,对图片渲染之前,子进程还需要将尺寸优化后的图片数据写入到主进程和子进程的共享缓存中。
101.其中,由于对原图的图片处理后的结果存在共享缓存中,那么主进程和子进程均可以执行渲染操作。
102.其中,若通过调用子进程执行对图片数据的渲染,需要子进程从主进程调用hdc,其中,hdc是一种包含有关某个设备(如显示器或打印机)的绘制属性信息的windows数据结构。
103.本实施例中,响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;创建子进程;调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;调用主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。这样,由于预览图占用的内存空间小,通过加载预览图,可以快速在显示器上显示图片,解决了现有技术中图片显示时间过长的问题,并且通过尺寸优化得到与显示器的尺寸匹配的图像,解决了现有技术中无法显示完整图片的问题。
104.并且,本实施例中,将对原图的处理操作剥离出来,在新的进程中执行原图的处理操作,这样大大降低了在单个进程中执行图片处理操作的时间,进而大大降低了出现进程卡顿、崩溃等问题发生的几率。
105.进一步的,子进程执行的所有操作,既可以在子进程的单个线程中执行,也可以在多个线程中执行,本实施例中不进行限定。
106.其中,子进程中执行的操作包括:原图加载、图片解码、尺寸优化,其中,可以将每个操作均在单独的进程中执行,具体的,还包括:
107.在所述子进程中开启多个线程,通过多个线程对所述图片的原图进行解码、对解码后的图片进行尺寸优化。
108.进一步的,为了最大程度的避免由于在单个进程中执行图片处理操作时间过长,而导致的进程崩溃、无响应等问题,可以采用多个子进程,分别来执行不同的图片处理操作。
109.进一步的,创建的子进程包括一个或者多个。
110.在创建的子进程为多个的情况下,可以通过一个子进程执行一个操作,也可以通过一个子进程执行多个操作。
111.举例说明:在创建的子进程为多个的情况下,且一个子进程执行一个操作的情况下,具体包括:
112.调用所述第一子进程加载所述图片的原图;
113.通过所述第二子进程对所述图片的原图进行解码;
114.通过所述第三子进程对解码后的图片进行尺寸优化。
115.参考图3,示出了本发明实施例提供的一种图像处理的场景示意图,该场景中包括第一终端301、服务器302、第二终端303;
116.其中,第一终端向服务器上传图片;
117.服务器生成图片的多个不同尺寸的预览图;
118.其中,为了匹配不同的显示器的尺寸,服务器可以预先将接收到的图片转换成不同尺寸的预览图。
119.第二终端从服务器中下载图片的预览图和原图;
120.其中,第二终端可以基于显示器的尺寸下载图片的预览图和原图,并显示所述图片的预览图和原图。
121.其中,基于上述的场景,如图4所示,示出了本发明实施例提供的一种图片处理的又一场景示意图:
122.s401:第一终端向服务器上传图片的原图;
123.s402:服务器保存所述图片的原图,并基于所述图片的原图,生成多个不同尺寸的预览图;
124.s403:第二终端响应于图片的下载指令,调用主进程下载预览生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;
125.s404:创建子进程;
126.s405:调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
127.s406:调用主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
128.本实施例中,服务器在接收到第一终端上传的图片的原图后,生成多个不同尺寸的图片的预览图,第二终端可以下载图片的原图和预览图,由于图片的预览图占用的内存小,可以在显示器上快速的显示图片。并且,对图片进行尺寸优化,可以在显示器上显示完整的图片。除此之外,将对原图进行处理的操作剥离出主进程,在子进程中执行对原图的处理操作,这样,大大降低了单个进程中执行图像处理操作的时间,进而大大降低了出现进程卡顿、崩溃等问题发生的几率。
129.参考图5,示出了本发明实施例提供的一种图片处理方法的又一流程示意图,在本实施例中,该方法包括:
130.s501:响应于图片下载指令,调用主进程下载预先生成的图片的预览图和图片的原图;
131.s502:通过所述主进程在显示器上显示所述预览图;
132.s503:在所述主进程中创建目标线程,并在所述目标线程中创建子进程;
133.s504:调用所述子进程,加载所述图片的原图;
134.s505:通过所述子进程对加载的所述图片的原图进行解码;
135.s506:通过所述子进程对解码后的图片进行尺寸优化;
136.s507:调用主进程或者子进程对尺寸优化后的图片进行渲染,将渲染结果在显示器上进行显示。
137.本实施例中,由于预览图占用的内存空间小,通过加载预览图,可以快速在显示器上显示图片,解决了现有技术中图片显示时间过长的问题,并且通过尺寸优化得到与显示器的尺寸匹配的图像,解决了现有技术中无法显示完整图片的问题。
138.并且,本实施例中,将原图的处理操作从主进程中剥离出来,在新的进程中执行原图的处理操作,这样大大降低了单个进程中执行图像处理操作的时间,进而大大降低了出
现进程卡顿、崩溃等问题发生的几率。
139.参考图6,示出了本发明实施例提供的一种图片处理装置的结构示意图,在本实施例中,该装置包括:
140.主进程执行单元601,用于响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;
141.创建单元602,用于创建子进程;
142.子进程执行单元603,用于调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
143.图片渲染单元,用于调用所述主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
144.可选的,主进程执行单元,包括:
145.第一获取子单元,用于获取显示器的尺寸参数;
146.下载子单元,用于在所述主进程中下载与所述显示屏幕的尺寸参数相匹配的预览图;其中,服务器中存储有多个不同尺寸的预览图。
147.可选的,所述创建单元,包括:
148.线程第一创建单元,用于在所述主进程中创建目标线程;
149.子进程第一创建单元,用于在所述目标线程中创建子进程。
150.可选的,所述子进程执行子单元,用于:
151.第二获取子单元,用于获取显示器的尺寸参数;
152.缩放处理子单元,用于基于显示器的尺寸参数,采用矩阵变换的方法对解码后的图片进行缩放处理。
153.可选的,还包括:
154.写入子单元,用于调用子进程,将尺寸优化后的图片数据写入到所述主进程和子进程的共享缓存中。
155.可选的,还包括:
156.多线程控制子单元,用于在所述子进程中开启多个线程,通过多个线程对所述图片的原图进行解码、对解码后的图片进行尺寸优化。
157.可选的,还包括:
158.第二创建单元,用于创建的子进程包括一个或者多个。
159.可选的,所述子进程执行单元,包括:
160.加载子单元,用于调用所述第一子进程加载所述图片的原图;
161.解码子单元,用于通过所述第二子进程对所述图片的原图进行解码;
162.尺寸优化子单元,用于通过所述第三子进程对解码后的图片进行尺寸优化。
163.通过本实施例的装置,由于预览图占用的内存空间小,通过加载预览图,可以快速在显示器上显示图片,解决了现有技术中图片显示时间过长的问题,并且通过尺寸优化得到与显示器的尺寸匹配的图像,解决了现有技术中无法显示完整图片的问题。
164.并且,本实施例中,将原图的处理操作从主进程中剥离出来,在新的进程中执行原图的处理操作,这样大大降低了单个进程中执行图像处理操作的时间,进而大大降低了出现进程卡顿、崩溃等问题发生的几率
165.参考图7,示出了本发明实施例提供的一种终端设备的结构示意图,在本实施例中,该设备包括:
166.处理器701和存储器702;
167.其中,所述处理器用于执行所述存储器中存储的程序;
168.所述存储器用于存储程序,所述程序至少用于:
169.响应于图片下载指令,调用主进程从服务器下载预先生成的图片的预览图和图片的原图,并在显示器上显示所述预览图;
170.创建子进程;
171.调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化;
172.调用所述主进程或者子进程对尺寸优化后的图片进行渲染,并将渲染结果在显示器上进行显示。
173.可选的,所述在主进程中下载预先生成的图片的预览图,包括:
174.获取显示器的尺寸参数;
175.在所述主进程中下载与所述显示屏幕的尺寸参数相匹配的预览图;其中,服务器中存储有多个不同尺寸的预览图。
176.可选的,所述创建子进程,包括:
177.在所述主进程中创建目标线程;
178.在所述目标线程中创建子进程。
179.可选的,所述在所述子进程中对解码后的图片进行尺寸优化,包括:
180.获取显示器的尺寸参数;
181.基于显示器的尺寸参数,采用矩阵变换的方法对解码后的图片进行尺寸优化处理。
182.可选的,还包括:
183.调用所述子进程将尺寸优化后的图片数据写入到所述主进程和子进程的共享缓存中。
184.可选的,还包括:
185.在所述子进程中开启多个线程,通过多个线程对所述图片的原图进行解码、对解码后的图片进行尺寸优化。
186.可选的,还包括:
187.创建的子进程包括一个或者多个。
188.可选的,在创建的所述子进程包括多个的情况下,所述调用所述子进程加载所述图片的原图,并对所述图片的原图进行解码,对解码后的图片进行尺寸优化,包括:
189.调用所述第一子进程加载所述图片的原图;
190.通过所述第二子进程对所述图片的原图进行解码;
191.通过所述第三子进程对解码后的图片进行尺寸优化。
192.在一些实施例中,上述终端或服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点(p2p,peer to peer)网络,任意形
式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。
193.需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
194.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1