一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

图片处理方法、装置、计算机设备和存储介质与流程

2022-03-31 06:21:04 来源:中国专利 TAG:


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.当所述总占用比例大于预设的临界比例时,对所述待导出图片进行图片压缩处理,得到所述待导出图片的压缩图片;
46.发送所述压缩图片至所述终端。
47.上述图片处理方法、装置、计算机设备、存储介质和计算机程序产品,在对待导出图片进行导出前,根据待导出图片的初始图片大小和服务器的内存占用情况,对待导出图片进行压缩处理,实现自适应动态调整图片大小,最大化地利用服务器资源,可以在有效避免大图片文件导出可能带来的内存溢出的同时,有效规避常规图片导出采取的规避手段所带来的不便利性,无需设定图片文件上传大小限制或者图片展示的固定压缩比例。
附图说明
48.图1为一个实施例中图片处理方法的应用环境图;
49.图2为一个实施例中图片处理方法的流程示意图;
50.图3为另一个实施例中图片处理方法的流程示意图;
51.图4为一个实施例中实现本技术图片处理方法的系统的整体结构框图;
52.图4.1为图4中图片导出初始化装置410的结构框图;
53.图4.2为图4中图片导出动态调整装置420的结构框图;
54.图4.3为图4中图片导出装置430的结构框图;
55.图5为一个实施例中基于可用内存动态调整图片压缩比例的图片导出处理流程图;
56.图6为图4中图片导出动态调整装置420的处理流程图;
57.图7为一个实施例中图片处理装置的结构框图;
58.图8为一个实施例中计算机设备的内部结构图。
具体实施方式
59.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
60.本技术实施例提供的图片处理方法,可以应用于如图1所示的应用环境中。其中,终端102通过网络与服务器104进行通信。数据存储系统可以存储服务器104需要处理的数据。数据存储系统可以集成在服务器104上,也可以放在云上或其他网络服务器上。在本技术的应用场景中,终端102发送针对待导出图片的获取请求至服务器104,服务器104响应于该获取请求,获取待导出图片的初始图片大小及服务器的当前已用内存,并基于初始图片大小和当前已用内存,确定待导出图片和当前已用内存对服务器的总内存的总占用比例,当总占用比例大于预设的临界比例时,对待导出图片进行图片压缩处理,得到待导出图片的压缩图片,发送该压缩图片至服务器104。其中,终端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调、智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
61.在一个实施例中,如图2所示,提供了一种图片处理方法,以该方法应用于图1中的服务器104为例进行说明,包括以下步骤:
62.步骤210,响应于终端发送的对待导出图片的获取请求,获取待导出图片的初始图片大小及服务器的当前已用内存。
63.其中,待导出图片表示需要通过服务器导出至终端进行展示的图片。
64.其中,初始图片大小表示待导出图片本身的大小。
65.具体实现中,由于终端无法直接访问如数据库等外部存储模块中存储的图片,而需要经过服务器从数据库中获取该图片,再通过接口返回给终端页面进行展示,从而实现数据库中的图片到终端的导出展示。因此,当终端102需要查看数据库中存储的图片,可发送针对需要查看的待导出图片的获取请求至服务器104,服务器104响应于该获取请求,从数据库中获取待导出图片,并获取待导出图片的初始图片大小,由于服务器104在获取待导出图片后,需要将待导出图片存储至服务器的内存中,因此,服务器104还需获取其自身的当前已用内存,从而根据当前已用内存和待导出图片的初始图片大小,确认在存储待导出图片时,是否会发生系统内存溢出的情况。
66.步骤220,基于初始图片大小和当前已用内存,确定待导出图片和当前已用内存对服务器的总内存的总占用比例。
67.其中,总占用比例表示待导出内存和服务器的当前已用内存占服务器的总内存的比重。
68.具体实现中,由于计算机分配存储空间时时有计量单位的,如以2kb为一单位,而初始图片大小为3kb,则需要分配两个单位,即需要4k的内存,因此,待导出图片在存储时所占用的内存与待导出图片本身的初始图片大小往往不相等。因此,在获取待导出图片的初始图片大小后,还需要基于初始图片大小确定待导出图片导出所需的内存,然后基于待导出图片导出所需的内存和服务器的当前已用内存,确定待导出图片和当前已用内存对服务
器的总内存的比重,得到待导出图片和当前已用内存对服务器的总内存的总占用比例。
69.步骤230,当总占用比例大于预设的临界比例时,对待导出图片进行图片压缩处理,得到待导出图片的压缩图片。
70.具体实现中,可预先设定服务器所能容纳的占用内存的临界比例,例如,设定临界比例为60%,则表明对服务器的总内存的占用比例不能超过60%,为保证对服务器的总内存的占用在预设的临界比例范围内,在得到待导出图片和当前已用内存对服务器的总内存的总占用比例后,可将总占用比例与预设的临界比例进行比对,判定总占用比例是否超出预设的临界比例。更具体地,若判定总占用比例大于预设的临界比例,表明待导出图片的直接存储将可能会导致服务器的内存溢出的情况,因此,需要对待导出图片进行图片压缩处理,以减小待导出图片对服务器的总内存的占用比例,得到待导出图片的压缩图片。反之,若判定总占用比例不大于预设的临界比例,即总占用比例小于或等于预设的临界比例,表明待导出图片的直接存储不会导致服务器的内存溢出的情况,因此,可无需对待导出图片进行图片压缩处理。
71.步骤240,发送压缩图片至终端。
72.具体实现中,服务器104在得到压缩图片后,可通过服务器104的接口将压缩图片返回给终端102,使终端102在终端102的页面上进行加载展示。
73.上述图片处理方法中,服务器响应于终端发送的对待导出图片的获取请求,获取待导出图片的初始大小及服务器的当前已用内存,以便于基于初始图片大小和当前已用内存,确定待导出图片和当前已用内存对服务器的总内存的总占用比例,从而可基于总占用比例和预设的临界比例确认在存储待导出图片时,是否会发生系统内存溢出的情况,若总占用比例大于预设的临界比例,表明可能会发生系统内存溢出的情况,从而可对待导出图片进行图片压缩处理,得到待导出图片的压缩图片,发送压缩图片至终端。该方法在对待导出图片进行导出前,根据待导出图片的初始图片大小和服务器的内存占用情况,对待导出图片进行压缩处理,实现自适应动态调整图片大小,最大化地利用服务器资源,可以在有效避免大图片文件导出可能带来的内存溢出的同时,有效规避常规图片导出采取的规避手段所带来的不便利性,无需设定图片文件上传大小限制或者图片展示的固定压缩比例。
74.在一示例性实施例中,上述步骤220基于初始图片大小和当前已用内存,确定待导出图片和当前已用内存对服务器的总内存的总占用比例,可通过下述方式实现:基于待导出图片的初始图片大小,确定待导出图片导出所需的内存;对待导出图片导出所需的内存与当前已用内存进行求和处理,得到占用内存和;获取占用内存和与服务器的总内存之间的比值,作为待导出图片和当前已用内存对服务器的总内存的总占用比例。
75.具体实现中,设待导出图片的初始图片大小为s,基于初始图片大小s确定的待导出图片导出所需的内存为m1,其中,实际内存m1略大于s即可,设服务器的当前已用内存为m2,则待导出图片和当前已用内存占用内存和可表示为:m1 m2,设服务器总内存为ma,则待导出图片和当前已用内存对服务器的总内存的总占用比例可表示为:(m1 m2)/ma。
76.本实施例中,通过待导出图片的初始图片大小,确定待导出图片导出所需的内存,对待导出图片导出所需的内存与所述当前已用内存进行求和处理,得到占用内存和,将占用内存和与服务器的总内存之间的比值,作为总占用比例,以便于进一步将总占用比例与预设的临界比例进行比对,确认是否对待导出图片进行图片压缩处理,以避免服务器的内
存溢出的情况。
77.进一步地,在一示例性实施例中,基于待导出图片的初始图片大小,确定待导出图片导出所需的内存,包括:获取预设的内存调整比率;内存调整比率表示待导出图片导出所需的内存与待导出图片的初始图片大小之间的比值;获取待导出图片的初始图片大小和内存调整比率之间的乘积,作为待导出图片导出所需的内存。
78.其中,内存调整比率表示待导出图片导出所需的内存与待导出图片的初始图片大小之间的比值,即表示待导出图片存储时所需空间与其本身的图片大小之间的比值,内存调整比率大于1。
79.具体实现中,可预先设定内存调整比率,例如,设定内存调整比率为1.1,计算待导出图片的初始图片大小与该内存调整比率的乘积,作为待导出图片导出所需的内存,使得待导出图片导出所需的内存略大于待导出图片的初始图片大小。例如,以内存调整增量为1.1为例,若待导出图片的初始图片大小为10kb,则待导出图片导出所需的内存为10kb
×
1.1=11kb;若待导出图片的初始图片大小为90b,则待导出图片导出所需的内存为90b
×
1.1=99b。
80.进一步地,由于不同待导出图片的大小不相同,因此,还可预先设定多个图片大小区间,每个图片大小区间设定对应的内存调整比率,确定待导出图片在预设的多个图片大小区间中所对应的目标图片大小区间,获取该目标图片大小区间对应的内存调整比率,作为待导出图片对应的目标内存调整比率,获取待导出图片的初始图片大小与该目标内存调整比率之间的乘积,作为待导出图片导出所需的内存。
81.在另一种实现方式中,也可以设定一个内存调整增量值,计算待导出图片的初始图片大小与内存调整增量值的和,作为待导出图片导出所需的内存,其中,内存调整增强值可以为一个无量纲的数值,其单位随待导出图片的初始图片大小确定。例如,设内存调整增量为2,若待导出图片的初始图片大小为10kb,则待导出图片导出所需的内存为10kb 2kb=12kb;若待导出图片的初始图片大小为900b,则待导出图片导出所需的内存为900b 2kb=902kb。
82.本实施例中,通过预设内存调整比率,以便基于内存调整比率与待导出图片的初始图片大小,确定待导出图片导出所需的内存,从而便于确定待导出图片的存储是否会导致服务器内存的溢出。
83.在一示例性实施例中,上述步骤230中对待导出图片进行图片压缩处理,得到压缩图片,可以通过下述方式实现:基于服务器的当前已用内存、服务器的总内存和预设的临界比例,确定待导出图片的图片压缩比率值;按照图片压缩比率值,对待导出图片进行图片压缩处理,得到压缩图片。
84.其中,图片压缩比率值表示压缩图片的图片大小与待导出图片的图片大小之间的比率,即经过压缩处理后的图片大小与原始图片的图片大小之间的比率。
85.具体实现中,可基于待导出图片和当前已用内存对服务器的总内存的总占用比例小于或等于临界比例的关系,计算得到满足待导出图片存储时,服务器内存不会溢出的条件下,待导出图片导出所需内存的临界值,获取该临界值与待导出图片的初始图片大小的比值,作为待导出图片的图片压缩比率值,进一步可按照该图片压缩比率值,对待导出图片进行图片压缩处理,得到压缩图片。
86.例如,若记待导出图片导出所需的内存为m1,服务器的当前已用内存为m2,服务器的总内存为ma,预设的临界比例为fm,则应有待导出图片和当前已用内存对服务器的总内存的总占用比例不大于临界比例,即:
87.(m1 m2)/ma≤fm
88.基于该关系式,可得m1≤(fm
×
ma)-m2,因此,基于服务器的当前已用内存、服务器的总内存和预设的临界比例,可以反推得到待导出图片导出所需的内存m1',进一步可获取待导出图片导出所需的内存m1'和待导出图片的初始图片大小s之间的比值:m1'/s,作为待导出图片的图片压缩比率值。
89.本实施例中,基于所述服务器的当前已用内存、所述服务器的总内存和所述预设的临界比例,确定的待导出图片的图片压缩比率值,充分考虑了服务器的内存占用情况,从而可使得按照该图片压缩比率值压缩处理得到的压缩图片可保证服务器的内存不会溢出。
90.在一示例性实施例中,上述步骤230中对待导出图片进行图片压缩处理,得到压缩图片,还可以通过下述方式实现:获取初始图片压缩比率值;按照初始图片压缩比率值,对待导出图片进行图片压缩处理,得到初始压缩图片;判断初始压缩图片和当前已用内存对服务器总内存的总占用比例是否大于临界比例;若总占用比例大于临界比例,则按照预设的比例增大初始图片压缩比率值,得到新的图片压缩比率值,返回对待导出图片进行图片压缩处理的步骤,直至总占用比例不大于临界比例,得到压缩图片。
91.其中,初始图片压缩比率值位于预设的压缩比率范围内,压缩比率范围可以为《50%-90%》。
92.具体实现中,在确认待导出图片和当前已用内存对服务器的总内存的总占用比例大于预设的临界比例时,可先按照初始图片压缩比率值(例如,90%),对待导出图片进行图片压缩处理,得到初始压缩图片,然后判断初始压缩图片的图片大小导出所需的内存和服务器的当前已用内存对服务器的总内存的总占用比例是否大于预设的临界比例。其中,初始压缩图片的图片大小通过计算初始图片大小与初始图片压缩比率值的乘积得到。若确定初始压缩图片对应的对服务器的总内存的总占用比例小于或等于预设的临界比例,表明初始压缩图片存储时,不会导致服务器内存溢出,因此,可将初始压缩图片作为最终的压缩图片返回给终端。反之,若确定初始压缩图片对应的对服务器的总内存的总占用比例大于预设的临界比例,表明初始压缩图片存储时,可能会导致服务器内存溢出,因此,需减小图片压缩比率值,以减小压缩图片的图片大小,例如,可按照预设的变化量10%将初始图片压缩比率值由90%减小为80%,将80%作为新的图片压缩比率值,按照新的图片压缩比率值对待导出图片进行压缩,得到新的压缩图片,再次计算新的压缩图片导出所需的内存和服务器的当前已用内存对服务器的总内存的总占用比例,确定该总占用比例是否大于预设的临界比例,若仍大于,则再次减小图片压缩比率值至70%,直至得到的总占用比例不大于预设的临界比例,得到最终的压缩图片,将该压缩图片返回给终端进行展示。其中,在减小图片压缩比率值时,需要在预设的图片压缩比率范围内进行。
93.本实施例中,通过逐步减小图片压缩比率值的方法对待导出图片进行图片压缩,直至得到的总占用比例不大于预设的临界比例,得到最终的压缩图片,从而实现在满足存储压缩图片时,服务器的内存不溢出的情况下,尽可能的保证待导出图片导出时的清晰度。
94.在一示例性实施例中,还包括:当待导出图片和当前已用内存对服务器内存的总
占用比例不大于预设的临界比例时,则返回待导出图片至终端。
95.本实施例中,当待导出图片和当前已用内存对服务器内存的总占用比例不大于预设的临界比例,表明待导出图片的直接存储不会导致服务器的内存溢出的情况,因此,可无需对待导出图片进行图片压缩处理,而直接将待导出图片返回至终端进行展示,以确保终端展示待导出图片的清晰度。
96.在另一个实施例中,如图3所示,提供了一种图片处理方法,本实施例中,该方法包括以下步骤:
97.步骤310,响应于终端发送的对待导出图片的获取请求,获取待导出图片的初始图片大小及服务器的当前已用内存;
98.步骤320,获取预设的内存调整比率;内存调整比率表示待导出图片导出所需的内存与待导出图片的初始图片大小之间的比值;
99.步骤330,获取待导出图片的初始图片大小和内存调整比率之间的乘积,作为待导出图片导出所需的内存;
100.步骤340,对待导出图片导出所需的内存与当前已用内存进行求和处理,得到占用内存和;
101.步骤350,获取占用内存和与服务器的总内存之间的比值,作为待导出图片和当前已用内存对服务器的总内存的总占用比例;
102.步骤360,当待导出图片和当前已用内存对服务器的总内存的总占用比例不大于预设的临界比例时,则返回待导出图片至终端;
103.步骤370,当总占用比例大于预设的临界比例时,基于服务器的当前已用内存、服务器的总内存和预设的临界比例,确定待导出图片的图片压缩比率值;
104.步骤380,按照图片压缩比率值,对待导出图片进行图片压缩处理,得到压缩图片;
105.步骤390,发送压缩图片至终端。
106.本技术提供的基于可用内存(jvm虚拟机内存)动态调整图片资源展示大小(即图片通过压缩后的大小)的图片处理方法,在计算机处理时根据内存情况对图片资源进行压缩处理,压缩后的图片文件流写入到图片文件,通过接口返回给前端页面进行展示。每次图片数据的导出通过服务器的可用内存,基于可用内存进行动态调整图片处理过程中的压缩比例,最大化利用系统资源,不仅能有效规避系统内存溢出,同时解决前端浏览器渲染大图片有时延的问题,极大的提升了系统图片资源较多情况下的用户体验。
107.在一个实施例中,为了便于本领域技术人员理解本技术实施例,以下将结合附图的具体示例进行说明。参考图4,为实现本技术图片处理方法的系统的整体结构框图,包括:图片导出初始化装置410、图片导出动态调整装置420和图片导出装置430,其中;
108.图片导出初始化装置410,用于设置并读取图片导出的相关初始参数。
109.图片导出动态调整装置420,用于根据服务器的当前内存使用情况,并结合图片导出内存占用情况以及图片压缩比范围区间,进行计算并调整图片的压缩比率以及图片实际导出大小。
110.图片导出装置430,根据计算的压缩比率进行图片实际数据导出,导出后并判断图片是否压缩成功。
111.参考图4.1,为本技术的图片导出初始化装置410的结构框图,包括:图片文件初始
计算单元11和内存临界控制初始单元12,其中;
112.图片文件初始计算单元11,用于读取图片的原始大小,导出时默认压缩比,以及允许图片压缩的比率区间,例如,(50%-90%)。
113.内存临界控制初始单元12,用于设置图片导出过程中,服务器内存使用的临界比例fm,如60%。
114.参考图4.2,为本技术的图片导出动态调整装置420的结构框图,包括:图片内存计算单元21、内存大小获取单元22、导出内存占用计算单元23和图片导出大小调整单元24,其中;
115.图片内存计算单元21,用于根据图片的原始图片大小,测算出本次图片文件导出所需占用的内存空间大小。
116.内存大小获取单元22,用于获取服务器的总内存大小,同时获取服务器的当前内存已经被占用的情况,即服务器的已用内存的大小。
117.导出内存占用计算单元23,用于根据图片内存计算单元21计算得出的本次图片导出所需内存大小,以及内存已占用获取单元22获取的服务器的当前已用内存,计算两者的占用内存和。
118.图片导出大小调整单元24,用于将导出内存占用计算单元23计算得到的本次图片导出时的占用内存和,与服务器的总内存进行比较,若占用内存和与总内存的比值超过预设的临界比例,则根据等比例递减的算法方式减小图片压缩比率(即减少图片实际导出大小),得到新的图片实际导出大小,并传给图片导出装置430。
119.参考图4.3,为本技术的图片导出装置430的结构框图,包括图片导出校验单元31和图片数据导出单元32。
120.图片导出校验单元31,用于对本次导出的文件对象大小进行校验,获取实际导出图片文件大小,该大小若小于或等于文件初始大小,则表示图片导出动态调整装置处理正常,可进行下一步图片导出,否则图片导出动态调整装置处理异常,终端图片导出流程,提示图片导出异常。
121.图片数据导出单元32,用于将计算得到的压缩后的文件流数据写入文件对象,进行文件导出。
122.参考图5,为本技术基于可用内存动态调整图片压缩比例的图片导出处理流程图,包括以下步骤:
123.步骤501,用户点击页面跳转加载,启动图片导出处理。
124.步骤502:导出流程从图片导出初始化装置410的图片文件初始大小计算单元11中读取初始文件大小s,默认图片压缩比率值r,预设的压缩比率区间[min,max],并将这些参数传入图片导出动态调整装置420,其中,r位于压缩比率区间内。
[0125]
步骤503:图片导出动态调整装置420经过计算处理后,返回本次应导出的图片实际大小n、实际导出图片文件流数据d,本次图片导出内存占用比例f1,并将n、d传给图片导出装置430。
[0126]
步骤504:图片导出装置430的图片导出校验单元31将得到的实际导出文件大小n与初始文件大小s做对比,若n≤s,则动态调整过程正常,可进行下一步导出,否则,动态调整过程异常,提示图片导出异常,中断导出流程。
[0127]
步骤505:图片导出装置430的图片数据导出单元32将获取的实际图片文件流数据d写入到文件中,返回给请求方,导出处理完成。
[0128]
参考图6,为本技术图片导出动态调整装置420的处理流程图,包括以下步骤:
[0129]
步骤601:图片内存计算单元21根据传入的本次导出图片文件初始大小s,预估计算得到本次图片导出s所需的内存占用大小m1(实际内存m1略大于s即可)。
[0130]
步骤602:内存大小获取单元22获取服务器的当前可用内存,得到总内存大小ma,以及目前服务器的已用内存大小m2。
[0131]
步骤603:导出内存占用计算单元23计算本次图片导出占用内存m1占总内存ma的比例f1和当前已用内存m2占用总内存ma的比例f2,将两个比例之和f1 f2,作为总占用比例fa。
[0132]
步骤604:图片导出动态调整装置420判断总占用比例f a是否大于预设临界比例fm(如60%)。如果是,则图片导出动态调整装置420不对传入的本次图片导出大小s进行调整,如果否,则进入步骤605。
[0133]
步骤605:图片导出动态调整装置420的图片导出大小调整单元将计算得到本次图片导出压缩比rn和压缩后图片文件流数据d。rn计算方式为:计算内存使用最大临界值m3=fm*ma,计算剩余内存:m4=m3-m2,压缩比为可用剩余内存和预估图片初始内存比率:rn=m4/m1,若rn小于默认图片压缩比率值r,则rn=r,若计算rn大于默认图片压缩比率值r且大于预设的压缩比率区间最大值max,则提示图片超出预设最大压缩比区间,图片展示清晰度将降低,得到处理后的图片导出大小n,n=s
×rn

[0134]
步骤606:本次图片导出实际大小n为本次动态调整后计算得到,从图片存储位置读取文件流数据并按照计算得到的压缩比rn进行压缩,得到压缩后的文件流数据d。
[0135]
本实施例通过基于可用jvm内存动态调整图片导出压缩比率的导出装置,实现了图片导出可根据jvm内存使用情况进行动态调整压缩比,具体以下优点:(1)图片导出过程可以根据服务器内存资源的使用情况进行动态调整,不仅可以合理利用服务器内存资源,避免大图片文件导出可能带来的内存溢出;(2)能有效规避常规图片导出采取的规避手段所带来的不便利性,无需设定图片文件上传大小限制或者图片展示的固定压缩比例等。
[0136]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0137]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的图片处理方法的图片处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个图片处理装置实施例中的具体限定可以参见上文中对于图片处理方法的限定,在此不再赘述。
[0138]
在一个实施例中,如图7所示,提供了一种图片处理装置,包括:获取模块710、确定模块720、压缩模块730和发送模块740,其中:
[0139]
获取模块710,用于响应于终端发送的对待导出图片的获取请求,获取待导出图片的初始图片大小及服务器的当前已用内存;
[0140]
确定模块720,用于基于初始图片大小和当前已用内存,确定待导出图片和当前已用内存对服务器的总内存的总占用比例;
[0141]
压缩模块730,用于当总占用比例大于预设的临界比例时,对待导出图片进行图片压缩处理,得到待导出图片的压缩图片;
[0142]
发送模块740,用于发送压缩图片至终端。
[0143]
在一个实施例中,上述确定模块720,具体用于基于待导出图片的初始图片大小,确定待导出图片导出所需的内存;对待导出图片导出所需的内存与当前已用内存进行求和处理,得到占用内存和;获取占用内存和与服务器的总内存之间的比值,作为待导出图片和当前已用内存对服务器的总内存的总占用比例。
[0144]
在一个实施例中,上述确定模块720,还用于获取预设的内存调整比率;内存调整比率表示待导出图片导出所需的内存与待导出图片的初始图片大小之间的比值;获取待导出图片的初始图片大小和内存调整比率之间的乘积,作为待导出图片导出所需的内存。
[0145]
在一个实施例中,上述压缩模块730,具体用于基于服务器的当前已用内存、服务器的总内存和预设的临界比例,确定待导出图片的图片压缩比率值;按照图片压缩比率值,对待导出图片进行图片压缩处理,得到压缩图片。
[0146]
在一个实施例中,上述压缩模块730,还用于获取初始图片压缩比率值;按照初始图片压缩比率值,对待导出图片进行图片压缩处理,得到初始压缩图片;判断初始压缩图片和当前已用内存对服务器总内存的总占用比例是否大于临界比例;若总占用比例大于临界比例,则减小初始图片压缩比率值,得到新的图片压缩比率值,返回对待导出图片进行图片压缩处理的步骤,直至总占用比例不大于临界比例,得到压缩图片。
[0147]
在一个实施例中,上述发送模块740,还用于当待导出图片和当前已用内存对服务器的总内存的总占用比例不大于预设的临界比例时,则返回待导出图片至终端。
[0148]
上述图片处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0149]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储图片处理过程中的数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图片处理方法。
[0150]
本领域技术人员可以理解,图8中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0151]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0152]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0153]
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
[0154]
需要说明的是,本技术提供的图片处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,可以用于金融领域进行图片压缩,也可应用于除金融领域之外的任意领域,本技术对应用领域不作具体限定。
[0155]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0156]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
[0157]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0158]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献