掌桥专利:专业的专利平台
掌桥专利
首页

图片压缩方法、装置、电子设备和计算机可读存储介质

文献发布时间:2024-01-17 01:27:33


图片压缩方法、装置、电子设备和计算机可读存储介质

技术领域

本申请涉及压缩技术领域,具体涉及一种图片压缩方法、装置、电子设备和计算机可读存储介质。

背景技术

在互联网的浪潮下,硬件和软件技术的不断发展和演进,促进了智能设备和软件的出现。与此同时,涌现出大量的、不同题材的游戏,以满足用户的需求,而游戏存在的游戏资源的种类有很多,例如音频资源、配置表资源、图片资源等,一般游戏中的图片资源相对而言占比最高,图片资源的尺寸将直接影响游戏中的内存和网络带宽。

现有手段一般是通过压缩图片资源的分辨率,来降低图片资源的尺寸,虽然节约了游戏中的内存占用状况,以及提高了网络带宽的利用率,但是会降低图片在游戏中的显示效果。

发明内容

本申请实施例提供一种图片压缩方法、装置、电子设备和计算机可读存储介质,可以实现在不影响图片显示效果的基础上进行图片压缩。

第一方面,本申请实施例提供一种图片压缩方法,上述方法包括:

获取待压缩的目标图片;

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;

基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

第二方面,本申请实施例还提供一种图片压缩装置,上述装置包括:

图片获取模块,用于获取待压缩的目标图片;

像素扫描模块,用于以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;

区域确定模块,用于基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;

压缩处理模块,用于基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

第三方面,本申请实施例还提供一种电子设备,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种图片压缩方法。

第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有多条指令,所述指令适于处理器进行加载,以执行本申请实施例所提供的任一种图片压缩方法。

本申请实施例中,获取待压缩的目标图片;以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,以基于扫描到的像素排上的像素点的像素点值进行比对,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件,即像素组中的像素排与像素排之间是相似的,然后基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,最后基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排,从而通过将图片中的像素相同区域进行裁剪,而无需改变图片的分辨率,从而实现了在不影响图片显示效果的基础上进行图片压缩。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本申请实施例提供的图片压缩方法的场景示意图;

图2是本申请实施例提供的图片压缩方法的一种实施例流程示意图;

图3是本申请实施例中提供的九宫格示意图;

图4a是本申请实施例中提供的一种可裁剪区域示意图;

图4b是本申请实施例中提供的一种裁剪区域示意图;

图4c是本申请实施例中提供的一种裁剪后的目标图片示意图;

图5a是本申请实施例中提供的另一种可裁剪区域示意图;

图5b是本申请实施例中提供的另一种裁剪区域示意图;

图5c是本申请实施例中提供的另一种裁剪后的目标图片示意图;

图6是本申请实施例提供的图片压缩装置的结构示意图;

图7是本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

在对本申请实施例进行详细地解释说明之前,先对本申请实施例涉及到的一些名词进行解释说明。

其中,在本申请实施例的描述中,术语“第一”、“第二”等可在本文中用于描述各种概念,但除非特别说明,这些概念不受这些术语限制。这些术语仅用于将一个概念与另一个概念区分。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本申请实施例提供一种图片压缩方法、装置、电子设备和计算机可读存储介质。具体地,本申请实施例的图片压缩方法可以由电子设备执行,其中,该电子设备可以为终端或者服务器等设备。该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,Personal Computer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备,终端还可以包括客户端,该客户端可以是游戏应用客户端、携带有游戏程序的浏览器客户端或即时通信客户端等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(ContentDelivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。

例如,如图1所示,该电子设备以终端10为例进行说明,该终端可以获取待压缩的目标图片;以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

基于上述问题,本申请实施例提供一种图片压缩方法、装置、电子设备和计算机可读存储介质,可以实现在不影响图片显示效果的基础上进行图片压需进行图片压缩的场景缩。

以下结合附图分别进行详细说明。需说明的是,以下实施例的描述顺序不作为对实施例优选顺序的限定。虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于附图所示的顺序执行所示出或描述的步骤。

在本实施例中,以终端为例进行说明,本实施例提供了一种图片压缩方法,如图2所示,该图片压缩方法的具体流程可以如下:

201、获取待压缩的目标图片。

其中,上述目标图片为需进行压缩处理的图片,该目标图片可以是游戏资源图片、产品设计图片、拍摄的照片等,在本实施例中,以目标图片为游戏资源图片作相关说明。

具体地,上述目标图片可以应用于图片显示场景,例如,当该目标图片是游戏资源图片时,可以基于该游戏资源图片显示游戏画面,有或者显示游戏画面中的某一游戏对象;上述目标图片还可以用于图片传输场景,例如,将设计好的游戏资源图片传输至相应的服务器中进行存储,或者,在游戏运行时,按需从相应服务器中下载对应的游戏资源图片,又或者,将设计完成的产品设计图片通过邮件发送给另一端。

具体地,上述目标图片可以是png格式或者jpg格式的图片。

在一些实施例中,终端可以在美术等相关工作人员设计出游戏资源图片之后,引入一图片资源检查工具,以通过该图片资源检查工具对设计出的游戏资源图片进行检查,从而当设计出的游戏资源图片的尺寸大于预设最大尺寸阈值时,将该大于最大尺寸阈值的游戏资源图片确定为上述目标图片。此外,当上述图片资源检查工具检查出存储目标图片时还可以进行告警操作,以及时的提醒相关工作人员。

在一些实施例中,由于不同场景下所对应的最大尺寸阈值不同,例如图片显示场景和图片传输场景,而且,为了能够充分利用游戏中的内存,以及最大程度的提高图片传输时的速率,减少网络带宽的压力。在本实施例中,终端在检测当前存在新设计的游戏资源图片时,将新设计的游戏资源图片确定为上述目标图片,避免了某些有可压缩空间的游戏资源图片,由于其尺寸小于预设的最大尺寸阈值,而没有被识别为目标图片的现象。

202、以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件。

其中,上述像素排扫描方向为扫描目标图片上的像素排的方向,目标图片上的一行像素或一列像素为一个像素排,上述像素排扫描方向可以包括行扫描方向和/或列扫描方向。

具体地,终端可以仅通过行扫描方向依次扫描上述目标图片中的多列像素排,或者终端仅通过列扫描方向依次扫描上述目标图片中的多行像素排,又或者,终端通过行扫描方向依次扫描上述目标图片中的多列像素排,并同时通过列扫描方向依次扫描上述目标图片中的多行像素排。其中,上述行扫描方向可以理解为从左往右横向扫描,或从右往左横向扫描,上述列扫描方向可以理解为从上往下纵向扫描,或从小往上纵向扫描。

在本实施例中,终端通过引入像素排相似条件,以基于扫描得到的目标图片中的多个像素排上的像素点值进行判断,从而将多个像素排按对应像素排扫描方向来分为至少一个像素组。

具体地,上述像素排相似条件可以是,按像素顺序进行比对,若两个像素排之间相同位置的像素点值相同的数量和一个像素排上的像素点总数量之间的比值大于预设像素排相似阈值的,认为满足上述像素排相似条件。

具体地,上述像素排相似条件还可以是,计算像素排不同区域的像素点值的均值,与另一像素排对应区域的像素点值的均值进行比对,若区域比对一致,则认为满足上述像素排相似条件。

示例性地,若当前存在10行像素排,其中,第1行至第5行的像素排符合像素排相似条件,第6行至第8行的像素排符合像素排相似条件,第9行至第10行的像素排符合像素排相似条件,那么,终端可以将第1行至第5行的5个像素排分为一个像素组,记为第一像素组,将第6行至第8行的3个像素排分为一个像素组,记为第二像素组,将第9行至第10行的2个像素排分为一个像素组,记为第三像素组,可以看出,相邻的第一像素组和第二像素组中的相邻像素排,即第5行像素排和第6行像素排不满足上述像素排相似条件,相邻的第二像素组和第三像素组中的相邻像素排,即第8行像素排和第9行像素排不满足上述像素排相似条件。

在一些实施例中,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组时的像素排比对的时机,可以是在扫描完成目标图片中所有的像素排之后,将所有的像素排进行对比,也可以是基于扫描顺序实时对比被扫描到的像素排。

此外,上述像素排比对的方式可以是相邻的像素排之间进行比对,也可以是以一个像素排为基准,致使后续扫描的像素排与为基准的像素排进行比对,上述为基准的像素排可以记为基准像素排。可以理解的是,由于划分为一个像素组的像素排是符合上述像素排相似条件的,所以上述基准像素排是第一个被扫描到或被对比时,与已扫描或已对比的像素排不符合像素排相似条件的像素排,并且,可以理解的是,若识别出与已扫描或已对比的像素排之间不符合素排相似条件的基准像素排时,可构建该基准像素排对应的像素组,以用于存储后续与该基准像素排连续,且符合素排相似条件的像素排。

具体地,若相邻的像素排之间进行比对,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,可以包括:终端以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,将每一像素排上的像素点值和相邻的上一像素排上的相邻像素点值进行比对,确定每一像素排和相邻的上一像素排之间的像素排比对结果;基于每一像素排和相邻的上一像素排之间的像素排比对结果,将像素排比对结果满足上述像素排相似条件,且相互连续的像素排分为一个像素组。

具体地,若以一个像素排为基准进行比对,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组可以包括:终端可以扫描上述目标图片中的当前像素排的像素点,确定上述当前像素排的像素点值,即基于确定的当前像素排的像素点值进行比对,终端继续获取上述像素排扫描方向上在上述当前像素排之前的基准像素排上的像素点值,上述基准像素排为上述目标图片中与上述当前像素排相邻的上一像素排之间像素匹配,且距离最远的像素排。终端再按像素排列顺序将上述当前像素排上和上述基准像素排上的位置相同的像素点值进行比对,确定上述当前像素排和上述基准像素排之间的像素排比对结果;若上述像素排比对结果满足上述像素排相似条件,则将上述当前像素排划分到上述基准像素排所属的像素组中。

进一步地,为了能够更便捷的对进行比对的当前像素排和被比对的基准像素排进行记录和比对,在本实施例中,终端可以引入像素组,即基准像素组和比对像素组,上述基准像素排上的像素点值存储于预设的基准像素组中,上述当前像素排上的像素点值存储于预设的比对像素组中。

具体地,按像素排列顺序将基准像素组中和比对像素组中的位置相同的像素点值进行比对,确定上述当前像素排和上述基准像素排之间的像素排比对结果。

并且,为了便于记录,终端可以引入预设的清空条件,即在基准像素组和比对像素组符合预设清空条件时,将基准像素组和/或比对像素组中的数据清空,以便于在基准像素组和比对像素组中更新的数据。

具体地,若上述像素排比对结果满足上述像素排相似条件,说明上述当前像素排和基准像素排属于同一像素组的,则终端清空上述比对像素组,以在上述像素排扫描方向上扫描与上述当前像素排相邻的下一像素排时,在清空后的上述比对像素组中存储上述下一像素排上的像素点值,从而继续通过上述比对像素组中存储的下一像素排上的像素点值和基准像素组中的基准像素排上的像素点值进行比对。

具体地,若上述像素排比对结果不满足上述像素排相似条件,说明上述当前像素排和基准像素排不属于同一像素组的,也即由基准像素排到当前像素排的上一像素排之间的像素排属于同一像素组,也即需更新的像素组了,则终端清空上述基准像素组和上述比对像素组,并将上述当前像素排上的像素点值存储于上述基准像素组中,即将当前像素排作为更新后的基准像素排,以基于基准像素组中更新后的基准像素排的像素点值作后续的对比判断。

示例性地,终端预先创建基准像素组line_pix_list1和比对像素组line_pix_list2,终端可以扫描上述目标图片中的当前像素排的像素点,若设定当前像素排为第一个扫描的像素排,则将当前像素排上的像素点值存储于line_pix_list1,并设置当前像素排所属的像素组为group=1。

然后,终端继续扫描上述目标图片中的与当前像素排相邻的下一像素排(记为A像素排),将A像素排的像素点值存储于line_pix_list2,按像素排列顺序将line_pix_list1和line_pix_list2中的位置相同的像素点值进行比对,确定像素排比对结果,若该像素排比对结果满足上述像素排相似条件,则终端清空上述line_pix_list2,并设置A像素排所属的像素组为group=1。

然后,终端继续扫描上述目标图片中的与A像素排相邻的下一像素排(记为B像素排),将B像素排的像素点值存储于line_pix_list2,按像素排列顺序将line_pix_list1和line_pix_list2中的位置相同的像素点值进行比对,确定像素排比对结果,若该像素排比对结果不满足上述像素排相似条件,则终端清空上述line_pix_list1和上述line_pix_list2,并将B像素排的像素点值存储于上述line_pix_list1中,并设置B像素排所属的像素组为group+=1,即在本示例中group=2。

然后,继续进行对比,直至扫描完成上述目标图片中的所有像素排。

203、基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域。

可以理解的是,为了保证压缩裁剪后的目标图片在拉伸时不影响图片本身的形状,在本实施例中,终端可进入图片的九宫格拉伸概念,即明确目标图片中的可拉伸区域,以基于该可拉伸区域的考量,来确定裁剪区域,从而避免基于裁剪区域进行图片压缩裁剪后,对压缩裁剪后的目标图片进行拉伸时影响图片本身的形状。

示例性地,如图3所示,图3中,将图片用4条线分割成9部分,保证四个角,即图3中的区域1、区域3、区域7、区域9不做拉伸,区域2和8可以作横向拉伸,区域4和6可以作纵向拉伸,而区域5可以进行横向和纵向的拉伸,以实现对整个图片的放大,从而满足游戏中不同显示的需求。

具体地,终端在满足上述目标图片中的可拉伸区域时,可以仅将每个像素排扫描方向上的像素排的排数最多的像素组留下,确定像素排的排数最多的像素组对应的区域为裁剪区域。

具体地,终端在满足上述目标图片中的可拉伸区域时,可以保留每个像素排扫描方向上的像素组,将每个像素组对应的区域确定为一个裁剪区域,从而得到多个裁剪区域。

在一些实施例中,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,终端可以通过预设区域裁剪策略来以自动的方式确定在上述像素排扫描方向下的裁剪区域,终端也可以通过接收来自用户终端的操作来以手动的方式确定在上述像素排扫描方向下的裁剪区域。

具体地,若以通过接收来自用户终端的操作来以手动的方式确定在上述像素排扫描方向下的裁剪区域,则上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,可以包括:终端基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定上述目标图片中的至少一块可裁剪区域,并对上述可裁剪区域进行标记;将标记后的目标图片发送给图片控制端,以使图片控制端显示标记后的目标图片,以使美术等相关工作人员在图片控制端对显示的标记后的目标图片进行操作,并促使目标控制端接收相关工作人员针对上述标记后的目标图片的操作信息;接收上述图片控制端发送的操作信息,并基于上述操作信息,确定上述目标图片中的裁剪区域。

其中,上述标记方式可以是对可裁剪区域进行颜色填充,也可以是用文本框对可裁剪区域进行框选,例如,如图4a所示,图4a中的灰度区域为可裁剪区域,如图5a所示,图5a中的白色区域为可裁剪区域。

相应地,终端在满足上述目标图片中的可拉伸区域时,终端可以对上述图4a中的可裁剪区域进行框选操作,以确定出可裁剪区域中的裁剪区域,例如,如图4b所示,图4b中的虚线框选的区域为终端基于操作信息确定的裁剪区域,如图5b所示,图5b中的虚线框选的区域为终端基于操作信息确定的裁剪区域。

在一些实施例中,由于终端可以通过图片资源检查工具对新设计出的游戏资源图片进行检查,从而当设计出的游戏资源图片的尺寸大于预设最大尺寸阈值时,将该大于最大尺寸阈值的游戏资源图片确定为上述目标图片,并进行相应的告警操作,所以,为了加强被告警操作通知的相关工作人员了解的直观性,上述告警操作可以在确定出裁剪区域后进行,即在进行告警操作时的告警信息包含上述可裁剪区域的信息或上述标记后的目标图片,以使被通知的相关工作人员能够直观的查看,目标图片的哪些区域可以被裁剪,也可以直观的看到目标图片的尺寸。

具体地,若以通过预设区域裁剪策略来以自动的方式确定在上述像素排扫描方向下的裁剪区域,则上述可拉伸区域对应至少一个拉伸方向,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,可以包括:基于上述像素组中的像素排,确定上述目标图片中的至少一块目标像素区域,其中,上述目标像素区域内的像素点在至少一个像素排扫描方向上与相邻像素点相同;将上述目标像素区域中的与上述可拉伸区域重叠,且像素排扫描方向与上述拉伸方向匹配的区域确定为上述目标图片中的可裁剪区域;基于预设的区域裁剪策略,确定上述可裁剪区域中的裁剪区域,其中,上述可裁剪区域比上述裁剪区域多至少一个像素排。

其中,上述区域裁剪策略可以是保留所述可裁剪区域中的位于与预设边缘位置的预设数量的像素排,其中,上述预设数量可以是一个,也可以是一个及一个以上,例如根据可裁剪区域中包含的像素排的数量和预设裁剪系数的乘积,确定对应的裁剪区域。

204、基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

在本实施例中,上述压缩处理可以是在目标图片中将裁剪区域裁剪掉,也可以是在目标图片中将裁剪区域更改分辨率,还可以是其他可以对裁剪区域进行压缩处理的手段。

可以理解的是,由于目标图片中的裁剪区域可以通过裁剪的方式进行压缩,所以后期可能存在需将裁剪区域进行拉伸,以使拉伸后的图片还原成被裁剪前的尺寸,或者拉伸后的图片符合当前场景的所需尺寸。所以,终端需保留像素组中的至少一个像素排,以便于后期拉伸时存在参考像素,所以,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

可以理解的是,由于图片资源的尺寸过大,将直接响应游戏中的内存,例如,一张分辨率为2048*2048的RGBA8888格式的游戏资源图片,所占用的内存为:2048*2048*4/1024/1024=16M内存。并且,在传输游戏图片时,图片资源的尺寸过大,也会造成客户端与服务器之间的网络带宽的压力,以及影响相关性能。对此,在本实施例中,终端通过上述方式来对该目标图片进行相应的压缩处理,可以减少图片资源对内存的占用,以及减少由于传输图片造成的网络带宽的压力。并且,还避免了调整图片分辨率进行图片压缩而降低了图片在游戏中的显示效果。

示例性地,在基于图4b,对目标图片进行裁剪之后,可以将目标图片裁剪后剩余的两个区域拼接在一起,得到裁剪后的目标图片,如图4c所示;在基于图5b,对目标图片进行裁剪之后,可以将目标图片裁剪后剩余的两个区域拼接在一起,得到裁剪后的目标图片,如图5c所示。

可以理解的是,从图示可以看出,图5a的尺寸为336*52,通过上述方法确定图5a的裁剪区域图5b,并对图5b进行压缩,以得到图5c,该图5c的尺寸为172*52,从而实现了在不影响图片显示效果的基础上进行图片压缩。并且,还可在后期处理中,对图片进行拉伸,例如将图5c拉伸为图5a,又或者,根据相关工作人员的需求对图片进行拉伸,例如将图5c由尺寸172*52拉伸为336*52。

在一些实施例中,上述像素排扫描方向包括行扫描方向和/或列扫描方向,上述基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,可以包括:

若上述像素排扫描方向为上述行扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一列像素排进行压缩处理,得到压缩处理后的目标图片;

若上述像素排扫描方向为上述列扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一行像素排进行压缩处理,得到压缩处理后的目标图片。

在一些实施例中,可以将裁剪后的目标图片合并在一个大图中,形成一图集,通过对目标图片压缩的方式,实现在图集中尽可能多的存储更多的裁剪后的图,减少了图集的个数,以及降低了网络带宽的压力。

由以上内容可以看出,获取待压缩的目标图片;以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,以基于扫描到的像素排上的像素点的像素点值进行比对,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件,即像素组中的像素排与像素排之间是相似的,然后基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,最后基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排,从而通过将图片中的像素相同区域进行裁剪,而无需改变图片的分辨率,从而实现了在不影响图片显示效果的基础上进行图片压缩。

为了更好地实施以上方法,本申请实施例还提供一种图片压缩装置,该图片压缩装置具体可以集成在电子设备中,比如,计算机设备,该计算机设备可以为终端、服务器等设备。

其中,终端可以为手机、平板电脑、智能蓝牙设备、笔记本电脑、个人电脑等设备;服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群。

比如,在本实施例中,将以图片压缩装置具体集成在终端为例,对本申请实施例的方法进行详细说明,本实施例提供了一种图片压缩装置,如图6所示,该图片压缩装置可以包括:

图片获取模块601,用于获取待压缩的目标图片;

像素扫描模块602,用于以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;

区域确定模块603,用于基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;

压缩处理模块604,用于基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

在一些实施例中,上述像素扫描模块602具体用于:

扫描上述目标图片中的当前像素排的像素点,确定上述当前像素排的像素点值;

获取上述像素排扫描方向上在上述当前像素排之前的基准像素排上的像素点值,上述基准像素排为上述目标图片中与上述当前像素排相邻的上一像素排之间像素匹配,且距离最远的像素排;

按像素排列顺序将上述当前像素排上和上述基准像素排上的位置相同的像素点值进行比对,确定上述当前像素排和上述基准像素排之间的像素排比对结果;

若上述像素排比对结果满足上述像素排相似条件,则将上述当前像素排划分到上述基准像素排所属的像素组中。

在一些实施例中,上述基准像素排上的像素点值存储于预设的基准像素组中,上述当前像素排上的像素点值存储于预设的比对像素组中,上述图片压缩装置还包括像素组处理模块,上述像素组处理模块具体用于:

若上述像素排比对结果满足上述像素排相似条件,则清空上述比对像素组,以在上述像素排扫描方向上扫描与上述当前像素排相邻的下一像素排时,在清空后的上述比对像素组中存储上述下一像素排上的像素点值;

若上述像素排比对结果不满足上述像素排相似条件,则清空上述基准像素组和上述比对像素组,并将上述当前像素排上的像素点值存储于上述基准像素组中。

在一些实施例中,上述像素扫描模块602具体用于:

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,将每一像素排上的像素点值和相邻的上一像素排上的相邻像素点值进行比对,确定每一像素排和相邻的上一像素排之间的像素排比对结果;

基于每一像素排和相邻的上一像素排之间的像素排比对结果,将像素排比对结果满足上述像素排相似条件,且相互连续的像素排分为一个像素组。

在一些实施例中,上述像素排扫描方向包括行扫描方向和/或列扫描方向,上述压缩处理模块604具体用于:

若上述像素排扫描方向为上述行扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一列像素排进行压缩处理,得到压缩处理后的目标图片;

若上述像素排扫描方向为上述列扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一行像素排进行压缩处理,得到压缩处理后的目标图片。

在一些实施例中,上述区域确定模块603具体用于:

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定上述目标图片中的至少一块可裁剪区域,并对上述可裁剪区域进行标记;

将标记后的目标图片发送给图片控制端,以使图片控制端显示标记后的目标图片,并接收针对上述标记后的目标图片的操作信息;

接收上述图片控制端发送的操作信息,并基于上述操作信息,确定上述目标图片中的裁剪区域。

在一些实施例中,上述可拉伸区域对应至少一个拉伸方向,上述区域确定模块603具体用于:

基于上述像素组中的像素排,确定上述目标图片中的至少一块目标像素区域,其中,上述目标像素区域内的像素点在至少一个像素排扫描方向上与相邻像素点相同;

将上述目标像素区域中的与上述可拉伸区域重叠,且像素排扫描方向与上述拉伸方向匹配的区域确定为上述目标图片中的可裁剪区域;

基于预设的区域裁剪策略,确定上述可裁剪区域中的裁剪区域,其中,上述可裁剪区域比上述裁剪区域多至少一个像素排。

由上可知,本实施例的图片压缩装置通过图片获取模块601获取待压缩的目标图片;通过像素扫描模块602以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,以基于扫描到的像素排上的像素点的像素点值进行比对,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件,即像素组中的像素排与像素排之间是相似的,然后通过区域确定模块603基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,最后通过压缩处理模块604基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排,从而通过将图片中的像素相同区域进行裁剪,而无需改变图片的分辨率,从而实现了在不影响图片显示效果的基础上进行图片压缩。

相应的,本申请实施例还提供一种电子设备,该电子设备可以为终端,该终端可以为智能手机、平板电脑、笔记本电脑、触控屏幕、游戏机、个人计算机(PC,PersonalComputer)、个人数字助理(Personal Digital Assistant,PDA)等终端设备。如图7所示,图7为本申请实施例提供的电子设备的结构示意图。该电子设备700包括有一个或者一个以上处理核心的处理器701、有一个或一个以上计算机可读存储介质的存储器702及存储在存储器702上并可在处理器上运行的计算机程序。其中,处理器701与存储器702电性连接。本领域技术人员可以理解,图中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

处理器701是电子设备700的控制中心,利用各种接口和线路连接整个电子设备700的各个部分,通过运行或加载存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行电子设备700的各种功能和处理数据,从而对电子设备700进行整体监控。

在本申请实施例中,电子设备700中的处理器701会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能:

获取待压缩的目标图片;

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;

基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

在一些实施例中,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,包括:

扫描上述目标图片中的当前像素排的像素点,确定上述当前像素排的像素点值;

获取上述像素排扫描方向上在上述当前像素排之前的基准像素排上的像素点值,上述基准像素排为上述目标图片中与上述当前像素排相邻的上一像素排之间像素匹配,且距离最远的像素排;

按像素排列顺序将上述当前像素排上和上述基准像素排上的位置相同的像素点值进行比对,确定上述当前像素排和上述基准像素排之间的像素排比对结果;

若上述像素排比对结果满足上述像素排相似条件,则将上述当前像素排划分到上述基准像素排所属的像素组中。

在一些实施例中,上述基准像素排上的像素点值存储于预设的基准像素组中,上述当前像素排上的像素点值存储于预设的比对像素组中,还包括:

若上述像素排比对结果满足上述像素排相似条件,则清空上述比对像素组,以在上述像素排扫描方向上扫描与上述当前像素排相邻的下一像素排时,在清空后的上述比对像素组中存储上述下一像素排上的像素点值;

若上述像素排比对结果不满足上述像素排相似条件,则清空上述基准像素组和上述比对像素组,并将上述当前像素排上的像素点值存储于上述基准像素组中。

在一些实施例中,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,包括:

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,将每一像素排上的像素点值和相邻的上一像素排上的相邻像素点值进行比对,确定每一像素排和相邻的上一像素排之间的像素排比对结果;

基于每一像素排和相邻的上一像素排之间的像素排比对结果,将像素排比对结果满足上述像素排相似条件,且相互连续的像素排分为一个像素组。

在一些实施例中,上述像素排扫描方向包括行扫描方向和/或列扫描方向,上述基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,包括:

若上述像素排扫描方向为上述行扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一列像素排进行压缩处理,得到压缩处理后的目标图片;

若上述像素排扫描方向为上述列扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一行像素排进行压缩处理,得到压缩处理后的目标图片。

在一些实施例中,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,包括:

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定上述目标图片中的至少一块可裁剪区域,并对上述可裁剪区域进行标记;

将标记后的目标图片发送给图片控制端,以使图片控制端显示标记后的目标图片,并接收针对上述标记后的目标图片的操作信息;

接收上述图片控制端发送的操作信息,并基于上述操作信息,确定上述目标图片中的裁剪区域。

在一些实施例中,上述可拉伸区域对应至少一个拉伸方向,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,包括:

基于上述像素组中的像素排,确定上述目标图片中的至少一块目标像素区域,其中,上述目标像素区域内的像素点在至少一个像素排扫描方向上与相邻像素点相同;

将上述目标像素区域中的与上述可拉伸区域重叠,且像素排扫描方向与上述拉伸方向匹配的区域确定为上述目标图片中的可裁剪区域;

基于预设的区域裁剪策略,确定上述可裁剪区域中的裁剪区域,其中,上述可裁剪区域比上述裁剪区域多至少一个像素排。

由此,本实施例提供的电子设备700可以带来如下技术效果:实现在不影响图片显示效果的基础上进行图片压缩。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

可选的,如图7所示,电子设备700还包括:触控显示屏703、射频电路704、音频电路705、输入单元706以及电源707。其中,处理器701分别与触控显示屏703、射频电路704、音频电路705、输入单元706以及电源707电性连接。本领域技术人员可以理解,图7中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

触控显示屏703可用于显示图形用户界面以及接收用户作用于图形用户界面产生的操作指令。触控显示屏703可以包括显示面板和触控面板。其中,显示面板可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。触控面板可用于收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并生成相应的操作指令,且操作指令执行对应程序。可选的,触控面板可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器701,并能接收处理器701发来的命令并加以执行。触控面板可覆盖显示面板,当触控面板检测到在其上或附近的触摸操作后,传送给处理器701以确定触摸事件的类型,随后处理器701根据触摸事件的类型在显示面板上提供相应的视觉输出。在本申请实施例中,可以将触控面板与显示面板集成到触控显示屏703而实现输入和输出功能。但是在某些实施例中,触控面板与触控面板可以作为两个独立的部件来实现输入和输出功能。即触控显示屏703也可以作为输入单元706的一部分实现输入功能。

射频电路704可用于收发射频信号,以通过无线通信与网络设备或其他电子设备建立无线通讯,与网络设备或其他电子设备之间收发信号。

音频电路705可以用于通过扬声器、传声器提供用户与电子设备之间的音频接口。音频电路705可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路705接收后转换为音频数据,再将音频数据输出处理器701处理后,经射频电路704以发送给比如另一电子设备,或者将音频数据输出至存储器702以便进一步处理。音频电路705还可能包括耳塞插孔,以提供外设耳机与电子设备的通信。

输入单元706可用于接收输入的数字、字符信息或用户特征信息(例如指纹、虹膜、面部信息等),以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。

电源707用于给电子设备700的各个部件供电。可选的,电源707可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源707还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。

尽管图7中未示出,电子设备700还可以包括摄像头、传感器、无线保真模块、蓝牙模块等,在此不再赘述。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。

为此,本申请实施例提供一种计算机可读存储介质,其中存储有多条计算机程序,该计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种图片压缩方法。例如,该计算机程序可以执行如下步骤:

获取待压缩的目标图片;

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,其中,每一像素组中的像素排连续且满足预设的像素排相似条件,相邻像素组中的相邻像素排的不满足上述像素排相似条件;

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域;

基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,其中,上述压缩处理后的目标图片中包含每一像素组中的至少一个像素排。

在一些实施例中,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,包括:

扫描上述目标图片中的当前像素排的像素点,确定上述当前像素排的像素点值;

获取上述像素排扫描方向上在上述当前像素排之前的基准像素排上的像素点值,上述基准像素排为上述目标图片中与上述当前像素排相邻的上一像素排之间像素匹配,且距离最远的像素排;

按像素排列顺序将上述当前像素排上和上述基准像素排上的位置相同的像素点值进行比对,确定上述当前像素排和上述基准像素排之间的像素排比对结果;

若上述像素排比对结果满足上述像素排相似条件,则将上述当前像素排划分到上述基准像素排所属的像素组中。

在一些实施例中,上述基准像素排上的像素点值存储于预设的基准像素组中,上述当前像素排上的像素点值存储于预设的比对像素组中,还包括:

若上述像素排比对结果满足上述像素排相似条件,则清空上述比对像素组,以在上述像素排扫描方向上扫描与上述当前像素排相邻的下一像素排时,在清空后的上述比对像素组中存储上述下一像素排上的像素点值;

若上述像素排比对结果不满足上述像素排相似条件,则清空上述基准像素组和上述比对像素组,并将上述当前像素排上的像素点值存储于上述基准像素组中。

在一些实施例中,上述以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,根据上述像素排上的像素点值将多个上述像素排按照上述像素排扫描方向分为至少一个像素组,包括:

以预设的像素排扫描方向依次扫描上述目标图片中的多个像素排上的像素点,将每一像素排上的像素点值和相邻的上一像素排上的相邻像素点值进行比对,确定每一像素排和相邻的上一像素排之间的像素排比对结果;

基于每一像素排和相邻的上一像素排之间的像素排比对结果,将像素排比对结果满足上述像素排相似条件,且相互连续的像素排分为一个像素组。

在一些实施例中,上述像素排扫描方向包括行扫描方向和/或列扫描方向,上述基于上述裁剪区域对上述目标图片进行压缩处理,得到压缩处理后的目标图片,包括:

若上述像素排扫描方向为上述行扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一列像素排进行压缩处理,得到压缩处理后的目标图片;

若上述像素排扫描方向为上述列扫描方向,则在上述目标图片中,对上述裁剪区域对应的至少一行像素排进行压缩处理,得到压缩处理后的目标图片。

在一些实施例中,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,包括:

基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定上述目标图片中的至少一块可裁剪区域,并对上述可裁剪区域进行标记;

将标记后的目标图片发送给图片控制端,以使图片控制端显示标记后的目标图片,并接收针对上述标记后的目标图片的操作信息;

接收上述图片控制端发送的操作信息,并基于上述操作信息,确定上述目标图片中的裁剪区域。

在一些实施例中,上述可拉伸区域对应至少一个拉伸方向,上述基于上述像素组中的像素排,以及上述目标图片中预设的可拉伸区域,确定在上述像素排扫描方向下的裁剪区域,包括:

基于上述像素组中的像素排,确定上述目标图片中的至少一块目标像素区域,其中,上述目标像素区域内的像素点在至少一个像素排扫描方向上与相邻像素点相同;

将上述目标像素区域中的与上述可拉伸区域重叠,且像素排扫描方向与上述拉伸方向匹配的区域确定为上述目标图片中的可裁剪区域;

基于预设的区域裁剪策略,确定上述可裁剪区域中的裁剪区域,其中,上述可裁剪区域比上述裁剪区域多至少一个像素排。

可见,计算机程序能够被处理器进行加载,以执行本申请实施例所提供的任一种图片压缩方法,从而带来如下技术效果:实现在不影响图片显示效果的基础上进行图片压缩。

以上各个操作的具体实施可参见前面的实施例,在此不再赘述。

其中,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。

由于该计算机可读存储介质中所存储的计算机程序,可以执行本申请实施例所提供的任一种图片压缩方法,因此,可以实现本申请实施例所提供的任一种图片压缩方法所能实现的有益效果,详见前面的实施例,在此不再赘述。

以上对本申请实施例所提供的一种图片压缩方法、装置、电子设备和计算机可读存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

相关技术
  • 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
  • 模态框构建方法、装置、电子设备、计算机可读存储介质
  • 电子设备、音量调节方法及装置、计算机可读存储介质
  • 数据库同步恢复方法、装置、计算机可读存储介质和电子设备
  • 数据处理方法、装置、计算机可读存储介质和电子设备
  • 图片压缩方法、装置、计算机设备及计算机可读存储介质
  • 图片压缩方法、装置、设备及计算机可读存储介质
技术分类

06120116227705