压缩图像的方法、装置、存储介质及电子设备与流程

文档序号:27615847发布日期:2021-11-29 13:13阅读:136来源:国知局
压缩图像的方法、装置、存储介质及电子设备与流程

1.本发明涉及图像处理领域,具体而言,涉及一种压缩图像的方法、装置、存储介质及电子设备。


背景技术:

2.在电子游戏作品的制作过程中,三维模型的材质表现通常依赖于大量的、包含了不同信息的贴图图像。在美术资产的生产环节,由于对贴图精度的要求不同,因此不同类型贴图的产出、加工流程往往不尽相同,以固有色贴图为例,传统的压缩与采样算法所产生的色相偏差是人眼难以察觉的,但用于计算光照夹角的法线贴图,传统算法产生的误差结果在数据解析和光照计算之后会产生较为明显的视觉差异,因此,为保证法线贴图压缩结果的品质,修改法线贴图尺寸往往需要经过高模烘焙低模输出的处理流程,而对于大型游戏,琐碎单一的贴图操作不但耗费了大量了生产成本,也因为手工操作带来的不稳定性增加了输出错误的风险。
3.随着行业的发展与硬件设备的进步,人们对三维渲染品质的需求越来越高,高精度贴图高效的、无损的压缩方案成为三维手游行业亟待解决的一个技术难题。
4.目前,相关技术中通常采用如下两种方式对贴图进行压缩处理:
5.方式一:使用无损格式(例如,tga、tiff等)存储贴图图像,利用photoshop完成对大量贴图的尺寸修改处理。
6.方式二:重走传统的法线烘焙流程,利用zbrush等雕刻软件,将高模的法线信息烘焙到低模的贴图上,输出得到的法线贴图再利用其它软件进行格式转换。
7.虽然上述两种方式均能够实现对贴图的压缩处理,但在方式一中,tga等无损格式的图像的体积较大,增加了游戏包体的大小;而且,相较于dds格式,tga等无损格式在加载、解析和读取环节的效率都更低,因此,方式一还存在加载图像缓慢等问题,此外,基于ps动作对图像进行处理没有统一的设计和维护标准,通常都是临时得到压缩需求,临时编写相关逻辑,不但导致额外的劳动成本的支出,其产出的效率和品质也都难以得到保障。
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.图1是根据本发明实施例的一种压缩图像的方法流程图;
34.图2是根据本发明实施例的一种可选的待压缩图像的示意图;
35.图3是根据本发明实施例的一种可选的目标图像的示意图;
36.图4是根据本发明实施例的一种可选的目标图像的示意图;
37.图5是根据本发明实施例的一种可选的压缩图像的方法流程图;
38.图6是根据本发明实施例的一种可选的图形化界面的示意图;
39.图7是根据本发明实施例的一种可选的预设系统的结构示意图;
40.图8是根据本发明实施例的一种压缩图像的方法流程图;
41.图9是根据本发明实施例的一种压缩图像的装置示意图。
具体实施方式
42.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
43.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
44.根据本发明实施例,提供了一种压缩图像的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
45.此外,还需要说明的是,在本实施例中,电子设备用于对待压缩图像进行压缩处理,即电子设备为本实施例所提供方法的执行主体,其中,电子设备可以为但不限于台式电脑、笔记本电脑、智能平板、智能手机等。
46.图1是根据本发明实施例的压缩图像的方法流程图,如图1所示,该方法包括如下步骤:
47.步骤s102,获取待压缩图像。
48.在步骤s102中,待压缩图像可以但不限于游戏场景中的贴图图像,该贴图图像可用于制作游戏场景中的虚拟三维模型的材质,其中,贴图图像可以为但不限于dds(direct draw surface)贴图,可选的,dds贴图可以为混合贴图、法线贴图以及固有色贴图。
49.在一种可选的实施例中,用户可通过电子设备的输入单元(例如,扫描仪)向电子设备输入该待压缩图像,以使电子设备对该待压缩图像进行压缩处理。
50.在另一种可选的实施例中,电子设备接收用户输入的控制指令,并根据控制指令从预设存储区域中获取该待压缩图像,例如,用户向电子设备输入存储待压缩图像的存储地址,电子设备从该存储地址处获取该待压缩图像。
51.步骤s104,对待压缩图像的图像特征进行分析,确定与待压缩图像对应的压缩方式。
52.在步骤s104中,待压缩图像的图像特征至少包括:待压缩图像所对应的文件名称、待压缩图像对应的像素格式以及待压缩图像对应的图像模式,其中,根据待压缩图像所对应的文件名称所包含的唯一可识别的关键字来确定待压缩图像对应的贴图类型,例如,检测到待压缩图像的文件名称中包含“_m”,则可确定该待压缩图像为混合贴图;又例如,检测到待压缩图像的文件名称中包含“_n”,则可确定该待压缩图像为法线贴图;又例如,检测到待压缩图像的文件名称中包含“_d”,则可确定该待压缩图像为固有色贴图。另外,上述待压缩图像对应的像素格式表征了原始图像所对应的压缩格式,包括但不限于dxt1格式、dxt5格式以及r8g8b8a8格式等;上述图像模式表征了待压缩图像所对应的通道信息,例如,原始图像包括颜色通道(例如,rgb通道)和透明通道(例如,alpha通道)。
53.由上述内容可知,电子设备通过对待压缩图像进行解析,即可确定待压缩图像所对应的贴图类型、原始图像对应的压缩格式以及通道信息等。电子设备通过对上述图像特征进行分析即可对待压缩图像进行压缩处理的压缩方式。
54.需要说明的是,不同的待压缩图像所对应的图像特征是不同的,而根据图像特征进行分析来确定待压缩图像的压缩方式,能够使压缩方式能够更加适配该待压缩图像,从而使用该压缩方式对待压缩图像进行压缩处理可以提高图像压缩质量。
55.步骤s106,采用压缩方式对待压缩图像进行压缩处理,得到目标图像。
56.可选的,图2为待压缩图像,图3和图4均为对待压缩图像进行压缩处理后所得到的目标图像,其中,待压缩图像的尺寸为2048*2048,该待压缩图像包含7张角色贴图和212张工程贴图,角色贴图共60.0mb,工程贴图共1.18gb。图3是将待压缩图像的尺寸调整为1024*1024,再对调整尺寸后的待压缩图像进行压缩处理后的结果,其中,在图3中,7张角色贴图共14.4mb,212张工程贴图共0.44gb,压缩率为37.3%,处理效率为17秒。。图4是将待压缩图像的尺寸调整为512*512,再对调整尺寸后的待压缩图像进行压缩处理后的结果,其中,在图4中,7张角色贴图共3.54mb,212张工程贴图共0.12gb,压缩率为10.1%,处理效率为16秒。
57.由图2

图4可知,对于不同尺寸的待压缩图像,采用相同的压缩方式,得到的目标图像的文件大小是不同的,其压缩率也不相同,但目标图像的保真度并没有降低,即采用本技术所提供的方案能够保证图像压缩质量。
58.基于上述步骤s102至步骤s106所限定的方案,可以获知,在本发明实施例中,采用使用与待压缩图像对应的压缩方式进行图像压缩的方式,在获取待压缩图像之后,通过对待压缩图像的图像特征进行分析,确定与待压缩图像对应的压缩方式,并采用该压缩方式对待压缩图像进行压缩处理,以得到目标图像。
59.容易注意到的是,在上述过程中,上述压缩方式是由待压缩图像的图像特征确定的,因此,该压缩方式是对待压缩图像进行压缩处理的最优的压缩策略,采用该压缩方式对待压缩图像进行压缩处理,能够保证图像压缩的质量。而且,在上述过程中,仅需要对待压缩图像进行特征分析即可确定压缩方式,然后直接使用该压缩方式对待压缩图像进行压缩处理即可,无需修改繁琐的工序,不仅节省了图像压缩的成本,还提高了图像压缩的效率。
60.由此可见,本技术所提供的方案达到了图像进行压缩处理的目的,从而实现了提
高图像压缩质量的技术效果,进而解决了现有技术中在对图像进行压缩时存在图像压缩质量差的技术问题。
61.在一种可选的实施例中,在获取到待压缩图像之后,电子设备对待压缩图像的图像特征进行分析,以确定与待压缩图像对应的压缩方式。具体的,电子设备对待压缩图像进行图像采样,得到第一图像,并对第一图像进行特征提取,得到待压缩图像对应的图像特征,然后再根据图像特征确定待压缩图像对应的压缩方式。
62.可选的,图5示出了一种可选的压缩图像的方法流程图,由图5可知,电子设备首先对待压缩图像进行图像采样,其中,电子设备可使用pil(python image library,python图像库)来对待压缩图像进行图像采样。pil可实现对待压缩图像的图像处理功能,例如,改变待压缩图像的大小,旋转待压缩图像,对待压缩图像进行格式转换,对待压缩图像进行色场空间转换、插值和滤波等。
63.进一步的,在对第一图像进行特征提取,得到待压缩图像对应的图像特征之后,电子设备根据像素格式检测第一图像中是否包含透明通道,得到第一检测结果,并根据第一检测结果对第一图像进行缩放处理,得到第二图像。其中,透明通道用于至少存储第一图像中的透明度信息以及灰度信息,灰度信息可以包括但不限于为自发光强度信息、粗糙度信息以及金属度信息。
64.可选的,在检测到第一图像中包含透明通道的情况下,对第一图像进行通道拆分处理,得到第三图像和第四图像,并分别对第三图像和第四图像进行缩放处理,得到缩放后的第三图像和缩放后的第四图像,然后,对缩放后的第三图像和缩放后的第四图像进行合并处理,得到第二图像。其中,第三图像为包含透明通道的图像,第四图像为包含颜色信息的图像。
65.在检测到第一图像中不包含透明通道的情况下,对第一图像进行缩放处理,得到第二图像。
66.可选的,在图5中,在对待压缩图像进行图像采样,得到第一图像之后,电子设备对第一图像进行尺寸缩放。由于传统的缩放算法会根据透明通道(例如,alpha通道)来裁剪掉第一图像中的颜色通道(例如,rgb通道)的像素值,将透明通道作为遮罩,即将颜色通道对应的数据与透明通道对应的数据进行乘积运算,从而使最终输出的图像的颜色通道对应的数值与原始图像(即待压缩图像)的颜色通道对应的数值不相符,进而导致压缩后的图像与原始图像相比,存在失真的问题。因此,在对第一图像进行缩放之前,要判断第一图像中是否包含透明通道(即图5中的a通道)。其中,如果第一图像中包含透明通道,则将第一图像进行通道拆分,将第一图像拆分为rgb对象(即第四图像)和a对象(即第三图像),再分别对两个图像进行缩放处理,得到缩放后的第四图像和缩放后的第三图像,该过程可使用humming过滤算法以减少噪点的产生,然后对完成缩放后的两个图像进行通道合并。
67.另外,在检测到第一图像中不包含透明通道的情况下,直接对第一图像进行尺寸缩放,无需进行判断。
68.在一种可选的实施例中,在根据第一检测结果对第一图像进行缩放处理,得到第二图像之前,电子设备比对第一图像对应的图像尺寸与预设尺寸的大小,得到比对结果,并接收目标对象根据比对结果所反馈的控制指令,然后根据控制指令对第一图像的尺寸进行调整。其中,目标对象为对电子设备进行操作的用户,即在本技术中,用户可根据电子设备
所显示的比对结果来选择对第一图像进行放大处理、缩小处理,还是禁止用户对第一图像的尺寸进行调整。
69.需要说明的是,在实际应用中用户可根据经验来确定第一图像所要调整的目标尺寸。另外,为了防止用户对电子设备的错误操作,在对第一图像进行图像缩放之前,电子设备需比对第一图像的图像尺寸与目标尺寸的大小,以使第一图像由小尺寸缩放至大尺寸时,能够记录警示信息并跳过该图像的处理流程,避免出现冗余的无意义大尺寸图像,如图5所示,对原始贴图的尺寸与目标尺寸进行比对。
70.例如,在预设的贴图目录中存储有多张不同尺寸的待压缩图像,用户需要将2k的图像压缩至1024*1024的尺寸,而该贴图目录中存在512*512尺寸的图像,如果直接调用pil来实现图像的缩放,则512*512尺寸的图像会被错误的放大至1024*1024,因此,在对图像进行缩放前,需要进行尺寸对比,以防止用户的错误操作。
71.此外,还需要说明的是,在对第一图像进行缩放的过程中,可将第一图像缩放为等边的矩形,即对第一图像进行图像缩放后所得到的第二图像为正方形,从而避免采样偏差或模糊度不均匀的显示问题。
72.在一种可选的实施例中,在对第一图像进行缩放,得到第二图像之后,对第二图像进行特征提取,以获取待压缩图像的图像特征,并根据图像特征确定待压缩图像对应的压缩方式,然后,电子设备采用压缩方式对待压缩图像进行压缩处理,得到目标图像。具体的,电子设备对待压缩图像进行格式转换,得到第六图像,并采用压缩方式对第六图像进行压缩处理,得到目标图像。其中,第六图像包括待压缩图像所包含的图像信息。
73.需要说明的是,第六图像的图像格式为不失真的贴图格式,如图5所示,电子设备将待压缩图像转换为无损格式的图像,并对转换为无损格式的图像进行暂存,例如,第六图像的图像格式可以为但不限于tga格式、tiff格式等。在得到第六图像之后,电子设备对第六图像进行暂存。
74.此外,还需要说明的是,将待压缩图像存储为无损格式的图像,后续再对无损格式的图像进行压缩处理,可避免对有损格式的图像进行压缩处理所导致的降低图像压缩质量的问题。
75.在一种可选的实施例中,在采用压缩方式对第六图像进行压缩处理,得到目标图像之前,电子设备检测待压缩图像所对应的图像信息中是否包括预设数据和/或透明通道,得到第二检测结果,并根据第二检测结果确定是否采用压缩方式对第六图像进行压缩处理。其中,预设数据为经过压缩处理后的图像数据。
76.可选的,在将待压缩图像存储为无损格式的图像之后,电子设备利用python的操作系统接口,调用texconv的函数,使用压缩策略将缩放过的暂存为无损格式的图像转换为对应的dds纹理文件,并释放(或删除)暂存文件。
77.可选的,在压缩方式为第一压缩方式的情况下,如果图像信息包含预设数据,但不包括透明通道以及禁止对第六图像进行压缩的压缩标识,则采用第一压缩方式对第六图像进行压缩处理;如果图像信息不包含预设数据,包括透明通道或压缩标识,则生成警示信息。
78.需要说明的是,上述第一压缩方式可以为dxt1方式,该格式的待压缩图像通常存储了压缩过数据的、不含透明通道的纹理贴图,因此,在实际应用中,如图5所示,电子设备
需进行如下判断:
79.电子设备检测待压缩图像中是否存在透明通道,如果存在,则记录问题并生成警示信息报错;如果不存在,再检测待压缩图像中是否存在不希望被压缩的识别标志(即上述压缩标识),如果存在,则记录问题并对用户提出警示信息,以提醒用户该格式可能会导致图像压缩后的质量受损;如果待压缩图像不存在上述问题,则按照dxt1格式对暂存的无损的图像文件进行格式转换,得到目标图像(即dds图像)。
80.可选的,在压缩方式为第二压缩方式的情况下,如果图像信息包含预设数据以及透明通道,但不包括禁止对第六图像进行压缩的压缩标识,则采用第二压缩方式对第六图像进行压缩处理;如果图像信息不包含预设数据以及透明通道,包括压缩标识,则生成警示信息。
81.需要说明的是,上述第二压缩方式可以为dxt5方式,该格式的待压缩图像通常存储了压缩过数据的、含透明通道的纹理贴图,因此,在实际应用中,如图5所示,电子设备需进行如下判断:
82.电子设备检测待压缩图像中是否存在不希望被压缩的识别标志(即上述压缩标识),如果存在,则记录问题并对用户提出警示信息,以提醒用户该格式可能会导致图像压缩后的质量受损;如果待压缩图像不存在上述问题,则按照dxt5格式对暂存的无损的图像文件进行格式转换,得到目标图像(即dds图像)。
83.可选的,在压缩方式为第三压缩方式的情况下,采用第三压缩方式对第六图像进行压缩处理。
84.需要说明的是,上述第三压缩方式可以为r8g8b8a8方式,该格式的待压缩图像通常存储了无损的纹理贴图,因此,在实际应用中,如图5所示,电子设备不需要进行上述问题的逻辑判断,直接进行格式转换,得到目标图像(即dds图像)。
85.在一种可选的实施例中,为了提高压缩图像的处理效率,在本实施例中,电子设备采用多线程的方式来执行图像压缩流程。可选的,在本技术中,电子设备可使用图形化交互设计和多线程功能相结合的形式来实现图形化多线程的处理流程,以降低现有的压缩方法所存在的门槛高的问题,并提高了图像压缩的执行效率,包括但不限于基于pyside2模块和原生的threading模块所提供的功能。
86.具体的,电子设备控制主线程向多个子线程进行任务分发,并控制监听线程对第一子线程进行监听,得到异常结果,并将异常结果反馈至图形用户界面的界面控制线程中,以使图形用户界面展示异常结果。其中,多个子线程至少包括第一子线程,第一子线程用于对待压缩图像进行分析、格式转换以及图像压缩。
87.需要说明的是,本实施例所提供的多线程设计从用户角度出发,在处理进程开始之后,通过精准的线程管理,实时响应用户的取消操作,以便在用户错误操作时及时止损;多线程使用线程池的管理方法,即一个主线程控制任务的分发,子线程在完成对单个图像的处理之后,激活主线程并调用主线程的派发函数,主线程根据任务池的余量决策分发子任务或是回收子线程、返回处理结果和警示日志等信息,从而在线程管理的逻辑上,实现高效的流程闭环,以保证该方法的处理速度。
88.例如,在图5所示的流程图中,电子设备首先判断用户对电子设备所暴露的待调整参数是否有效,如果待调整参数无效,则电子设备不对待压缩图像进行图像压缩;如果待调
整参数有效,则电子设备创建管理主线程和线程池。然后电子设备创建子线程,通过子线程来记录图像压缩过程中所产生的异常,并跳过出现异常的任务。另外,在将无损格式的图像转换为dds图像之后,释放运行图像压缩任务的子线程,并删除暂存的图像。同时,主线程从管理线程调用任务池余量,如果任务池余量为空,则释放子线程,并整理输出压缩图像的日志。
89.另外,在上述过程中,如果电子设备接收到了用户输入的终止操作,则主线程停止并回收所有子线程。
90.此外,还需要说明的是,电子设备能够实现对程序执行异常时进行响应,包括但不限于暂存图像的读写错误、权限错误、多线程冲突错误等。
91.在一种可选的实施例中,电子设备获取待压缩图像所对应的待调整参数,并对待调整参数进行调整,得到调整后的参数,然后基于调整后的参数对待压缩图像进行压缩处理,得到目标图像。
92.可选的,上述待调整参数可以为但不限于图6所示的图形化界面中的“目标尺寸”、“关键字”、“过滤器”、“线程数”、“输入格式”、“输出格式”以及当前能够执行的操作等。
93.需要说明的是,图形化交互设计从用户的角度出发,暴露最关键的可调配参数(及上述待调整参数),以图形和文字相结合的方式,简化用户的操作复杂度;搭配以日志窗口和进度条的形式,直观的将记录、统计、警告和操作记录等信息展现给用户,并在处理过程中,将最值得关注的信息筛选出来,实时呈现和高亮总结。
94.在另一种可选的实施例中,电子设备还可获取目标对象对预设系统的操作记录,并存储操作记录。其中,预设系统用于对待压缩图像进行压缩处理。
95.可选的,上述目标对象可以为用户,上述预设系统可以为对待压缩图像进行压缩处理的系统,该预设系统可以包括电子设备。另外,电子设备可记录用户的使用习惯,并以文件的形式存储用户操作,包括但不限于记录最后一次使用时选择的文件目录、采样器类型、线程数、关键字或目标尺寸等信息。
96.可选的,图7示出了上述预设系统的结构示意图,由图7可知,该系统包括图形化界面、管理线程(即主线程)、执行线程(即子线程)、策略决策模型以及图像处理模块,其中,图形化界面能够显示“目标尺寸”、“关键字”、“过滤器”(即采样算法)、“线程数”、“输入格式”、“输出格式”以及当前能够执行的操作,例如,更新进度条、开始执行以及终止线程等。管理线程能够实现对线程池和任务池的管理,并能够获取下一个任务以及更新任务池。执行线程能够对图像进行处理,并对处理后的图像进行暂存。其中,执行线程通过调用策略库中的策略决策模块来实现对图像的规格判断、压缩格式判断以及异常处理等,通过调用图像处理模块中的图像处理方法来实现对图像的图层分层、图像缩放、图像加载以及图像的存储。
97.由上述内容可知,通过本实施例所提供的方案,按照用户预设的目标尺寸将待压缩图像裁剪为等边多边形,并利用命名的形式区分图像类型;通过智能压缩方案解析待压缩图像,并根据解析得到的数据自动选择最优压缩策略;利用python第三方库pil和原生的系统函数调用texconv技术完成对待压缩图像的重采样、缩放、压缩和存储;利用pyside2和python原生的多线程模块结合处理流程对执行效率进行优化。从而解决了图像压缩工作中的稳定性不佳、压缩质量受损和效率过低的问题。本实施例所提供的方案尤适用于大量的、多类型dds贴图混杂且对压缩品质要求较高的情况。
98.根据本发明实施例,还提供了一种压缩图像的方法实施例,其中,图8是根据本发明实施例的压缩图像的方法流程图,如图8所示,该方法包括如下步骤:
99.步骤s802,在交互界面上选择待压缩图像,以及选择至少一个调节参数。
100.可选的,交互界面可以为图6所示的图形化界面,用户可通过对图形化界面中的“目标文件夹”所对应的图像选择控件来选择待压缩图像,其中,待压缩图像存储在图6中文本框所示的地址中。
101.另外,上式调节参数可以为但不限于图6中的待压缩图像对应的“目标尺寸”、“关键字”、“过滤器”(即采样算法)、“线程数”、“输入格式”、“输出格式”。
102.需要说明的是,电子设备在读取到待压缩图像之后,对待压缩图形进行解析操作,即可得到待压缩图像对应的调节参数,并将调节参数所对应的数值显示在交互界面上。
103.步骤s804,调用采样函数对待压缩图像进行采样处理,得到采样结果。
104.在步骤s804中,电子设备可使用pil(python image library,python图像库)中的采样函数来对待压缩图像进行图像采样。其中,pil可实现对待压缩图像的图像处理功能,例如,改变待压缩图像的大小,旋转待压缩图像,对待压缩图像进行格式转换,对待压缩图像进行色场空间转换、插值和滤波等。
105.可选的,电子设备在对待压缩图像进行采样处理后,即可得到包含待压缩图像的图像特征的采用结果,其中,待压缩图像的图像特征至少包括:待压缩图像所对应的文件名称、待压缩图像对应的像素格式以及待压缩图像对应的图像模式,其中,根据待压缩图像所对应的文件名称所包含的唯一可识别的关键字来确定待压缩图像对应的贴图类型,例如,检测到待压缩图像的文件名称中包含“_m”,则可确定该待压缩图像为混合贴图;又例如,检测到待压缩图像的文件名称中包含“_n”,则可确定该待压缩图像为法线贴图;又例如,检测到待压缩图像的文件名称中包含“_d”,则可确定该待压缩图像为固有色贴图。另外,上述待压缩图像对应的像素格式表征了原始图像所对应的压缩格式,包括但不限于dxt1格式、dxt5格式以及r8g8b8a8格式等;上述图像模式表征了待压缩图像所对应的通道信息,例如,原始图像包括颜色通道(例如,rgb通道)和透明通道(alpha通道)。
106.步骤s806,基于采样结果和至少一个调节参数,确定与待压缩图像对应的压缩方式。
107.在步骤s806中,电子设备通过对采样结果进行解析,即可确定待压缩图像所对应的贴图类型、原始图像对应的压缩格式以及通道信息等。电子设备通过对上述图像特征以及调节参数进行分析即可对待压缩图像进行压缩处理的压缩方式。
108.需要说明的是,不同的待压缩图像所对应的图像特征是不同的,而根据图像特征和调节参数进行分析来确定待压缩图像的压缩方式,能够使压缩方式能够更加适配该待压缩图像,从而使用该压缩方式对待压缩图像进行压缩处理可以提高图像压缩质量。而且,用户还可对待压缩图像压缩后的目标尺寸、输出格式以及压缩过程中所需要使用到的过滤器和线程数进行调节,提高了图像压缩的灵活性。
109.步骤s808,采用压缩方式对待压缩图像进行压缩处理,得到目标图像。
110.可选的,图2为待压缩图像,图3和图4均为对待压缩图像进行压缩处理后所得到的目标图像,其中,待压缩图像的尺寸为2048*2048,该待压缩图像包含7张角色贴图和212张工程贴图,角色贴图共60.0mb,工程贴图共1.18gb。图3是将待压缩图像的尺寸调整为1024*
1024,再对调整尺寸后的待压缩图像进行压缩处理后的结果,其中,在图3中,7张角色贴图共14.4mb,212张工程贴图共0.44gb,压缩率为37.3%,处理效率为17秒。。图4是将待压缩图像的尺寸调整为512*512,再对调整尺寸后的待压缩图像进行压缩处理后的结果,其中,在图4中,7张角色贴图共3.54mb,212张工程贴图共0.12gb,压缩率为10.1%,处理效率为16秒。
111.由图2

图4可知,对于不同尺寸的待压缩图像,采用相同的压缩方式,得到的目标图像的文件大小是不同的,其压缩率也不相同,但目标图像的保真度并没有降低,即采用本技术所提供的方案能够保证图像压缩质量。
112.在本发明实施例中,采用使用与待压缩图像对应的压缩方式进行图像压缩的方式,在交互界面上选择待压缩图像以及选择至少一个调节参数,然后调用采样函数对待压缩图像进行采样处理,得到采样结果,并基于采样结果和至少一个调节参数,确定与待压缩图像对应的压缩方式,最后采用该压缩方式对待压缩图像进行压缩处理,以得到目标图像。
113.在上述过程中,上述压缩方式是由待压缩图像的图像特征确定的,因此,该压缩方式是对待压缩图像进行压缩处理的最优的压缩策略,采用该压缩方式对待压缩图像进行压缩处理,能够保证图像压缩的质量。而且,在上述过程中,仅需要对待压缩图像进行特征分析即可确定压缩方式,然后直接使用该压缩方式对待压缩图像进行压缩处理即可,无需修改繁琐的工序,不仅节省了图像压缩的成本,还提高了图像压缩的效率。
114.由此可见,本技术所提供的方案达到了图像进行压缩处理的目的,从而实现了提高图像压缩质量的技术效果,进而解决了现有技术中在对图像进行压缩时存在图像压缩质量差的技术问题。
115.需要说明的是,对待压缩图像进行压缩的过程已在上述实施例中进行详细说明,在此不再赘述。
116.根据本发明实施例,还提供了一种压缩图像的装置实施例,其中,图9是根据本发明实施例的压缩图像的装置示意图,如图9所示,该装置包括:获取模块901、分析模块903以及压缩模块905。
117.其中,获取模块901,用于获取待压缩图像;
118.分析模块903,用于对待压缩图像的图像特征进行分析,确定与待压缩图像对应的压缩方式;
119.压缩模块905,用于采用压缩方式对待压缩图像进行压缩处理,得到目标图像。
120.需要说明的是,上述获取模块901、分析模块903以及压缩模块905对应于上述实施例中的步骤s102至步骤s106,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。
121.可选的,分析模块包括:采样模块、提取模块以及第一确定模块。其中,采样模块,用于对待压缩图像进行图像采样,得到第一图像;提取模块,用于对第一图像进行特征提取,得到待压缩图像对应的图像特征,其中,图像特征至少包括:待压缩图像所对应的文件名称、待压缩图像对应的像素格式以及待压缩图像对应的图像模式;第一确定模块,用于根据图像特征确定待压缩图像对应的压缩方式。
122.可选的,压缩图像的装置还包括:第一检测模块以及第一处理模块。其中,第一检测模块,用于在对第一图像进行特征提取,得到待压缩图像对应的图像特征之后,根据像素
格式检测第一图像中是否包含透明通道,得到第一检测结果,其中,透明通道用于至少存储第一图像中的透明度信息以及灰度信息;第一处理模块,用于根据第一检测结果对第一图像进行缩放处理,得到第二图像。
123.可选的,第一处理模块包括:拆分模块、第二处理模块以及合并模块。其中,拆分模块,用于在检测到第一图像中包含透明通道的情况下,对第一图像进行通道拆分处理,得到第三图像和第四图像,其中,第三图像为包含透明通道的图像,第四图像为包含颜色信息的图像;第二处理模块,用于分别对第三图像和第四图像进行缩放处理,得到缩放后的第三图像和缩放后的第四图像;合并模块,用于对缩放后的第三图像和缩放后的第四图像进行合并处理,得到第二图像。
124.可选的,第一处理模块包括:第三处理模块,用于在检测到第一图像中不包含透明通道的情况下,对第一图像进行缩放处理,得到第二图像。
125.可选的,压缩图像的装置还包括:比对模块、接收模块以及第一调整模块。其中,比对模块,用于在根据第一检测结果对第一图像进行缩放处理,得到第二图像之前,比对第一图像对应的图像尺寸与预设尺寸的大小,得到比对结果;接收模块,用于接收目标对象根据比对结果所反馈的控制指令;第一调整模块,用于根据控制指令对第一图像的尺寸进行调整。
126.可选的,压缩模块包括:转换模块以及第四处理模块。其中,转换模块,用于对待压缩图像进行格式转换,得到第六图像,其中,第六图像包括待压缩图像所包含的图像信息;第四处理模块,用于采用压缩方式对第六图像进行压缩处理,得到目标图像。
127.可选的,压缩图像的装置还包括:第二检测模块以及第三确定模块。其中,第二检测模块,用于在采用压缩方式对第六图像进行压缩处理,得到目标图像之前,检测待压缩图像所对应的图像信息中是否包括预设数据和/或透明通道,得到第二检测结果,其中,预设数据为经过压缩处理后的图像数据;第三确定模块,用于根据第二检测结果确定是否采用压缩方式对第六图像进行压缩处理。
128.可选的,第三确定模块包括:第五处理模块以及第一生成模块。其中,第五处理模块,用于在压缩方式为第一压缩方式的情况下,如果图像信息包含预设数据,但不包括透明通道以及禁止对第六图像进行压缩的压缩标识,则采用第一压缩方式对第六图像进行压缩处理;第一生成模块,用于如果图像信息不包含预设数据,包括透明通道或压缩标识,则生成警示信息。
129.可选的,第三确定模块包括:第六处理模块以及第二生成模块。其中,第六处理模块,用于在压缩方式为第二压缩方式的情况下,如果图像信息包含预设数据以及透明通道,但不包括禁止对第六图像进行压缩的压缩标识,则采用第二压缩方式对第六图像进行压缩处理;第二生成模块,用于如果图像信息不包含预设数据以及透明通道,包括压缩标识,则生成警示信息。
130.可选的,第三确定模块包括:第七处理模块,用于在压缩方式为第三压缩方式的情况下,采用第三压缩方式对第六图像进行压缩处理。
131.可选的,压缩图像的装置还包括:第一控制模块以及第二控制模块。其中,第一控制模块,用于控制主线程向多个子线程进行任务分发,其中,多个子线程至少包括第一子线程,第一子线程用于对待压缩图像进行分析、格式转换以及图像压缩;第二控制模块,用于
控制监听线程对第一子线程进行监听,得到异常结果,并将异常结果反馈至图形用户界面的界面控制线程中,以使图形用户界面展示异常结果。
132.可选的,压缩图像的装置还包括:第一获取模块、第二调整模块以及第八处理模块。其中,第一获取模块,用于获取待压缩图像所对应的待调整参数;第二调整模块,用于对待调整参数进行调整,得到调整后的参数;第八处理模块,用于基于调整后的参数对待压缩图像进行压缩处理,得到目标图像。
133.可选的,压缩图像的装置还包括:第二获取模块以及存储模块。其中,第二获取模块,用于获取目标对象对预设系统的操作记录,其中,预设系统用于对待压缩图像进行压缩处理;存储模块,用于存储操作记录。
134.根据本发明实施例的另一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的压缩图像的方法。
135.根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储装置,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的压缩图像的方法。
136.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
137.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
138.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
139.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
140.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
141.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read

only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
142.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人
员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1