CN113568578B - 一种图片处理方法、装置、电子设备和可读存储介质 - Google Patents
一种图片处理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN113568578B CN113568578B CN202110852760.5A CN202110852760A CN113568578B CN 113568578 B CN113568578 B CN 113568578B CN 202110852760 A CN202110852760 A CN 202110852760A CN 113568578 B CN113568578 B CN 113568578B
- Authority
- CN
- China
- Prior art keywords
- picture
- pictures
- size
- memory
- sample
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
Abstract
本申请提供了一种图片处理方法、装置、电子设备和可读存储介质,涉及图片处理技术领域,方法包括:获取多张样本图片,其中,多张样本图片为待保存至存储器的图片,存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据;按照样本图片在第一方向上的尺寸进行划分得到多个分组,其中,每个分组中包含多张第一图片,每个分组中的多张第一图片在第一方向上的尺寸位于同一尺寸范围内;通过目标分组中的多张第一图片生成第二图片,其中,第二图片的第一尺寸为多张第一图片在第一方向上的最大尺寸,第二图片的第二尺寸为多张第一图片在第二方向上的尺寸之和,第二方向与第一方向垂直;存储第二图片至存储器中。本申请提高了存储器空间使用率。
Description
技术领域
本申请涉及图片处理技术领域,尤其涉及一种图片处理方法、装置、电子设备和可读存储介质。
背景技术
应用程序安装包在生成后,由技术人员发布到用于存储安装包的服务器硬盘,用户可以从服务器硬盘中下载该应用程序安装包至终端中,某些工程类的应用程序安装包中存在多张图片,终端在首次启动应用程序时,这些图片会存入终端的内存。硬盘的存储具有4k对齐机制,即使每张图片数据量小,该图片也会单独占用一个4k内存,造成内存空间的浪费。
例如,应用程序安装包包括三张图片,三张图片的实际占用内存分别为1k,2k和3k,实际占用内存共6k,但若按照硬盘的4k对齐机制,三张图片分别占用一个4k内存,则共占据内存12k,浪费了硬盘空间。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本申请提供了一种图片处理方法、装置、电子设备和可读存储介质。
第一方面,本申请提供了一种图片存储方法,应用于图片压缩端,所述方法包括:
获取多张样本图片,其中,所述多张样本图片为待保存至存储器的图片,所述存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据;
按照所述样本图片在第一方向上的尺寸进行划分得到多个分组,其中,每个所述分组中包含多张第一图片,每个所述分组中的多张第一图片在所述第一方向上的尺寸位于同一尺寸范围内;
通过目标分组中的多张第一图片生成第二图片,其中,所述第二图片的第一尺寸为所述多张第一图片在第一方向上的最大尺寸,所述第二图片的第二尺寸为所述多张第一图片在第二方向上的尺寸之和,所述第二方向与所述第一方向垂直;
存储所述第二图片至所述存储器中。
可选地,所述按照所述样本图片在第一方向上的尺寸进行划分得到多个分组,包括:
获取每个所述样本图片在第一方向上的尺寸;
从所述样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片;
将所述多张第一图片划入同一个图片分组。
可选地,所述从所述样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片包括:
从所述样本图片中选取占用内存空间小于所述存储器的物理扇区阈值的待划分图片,其中,所述存储器包括多个物理扇区,每个所述物理扇区具有内存阈值;
从所述待划分图片中选取第一方向上的尺寸小于第一阈值的多张第一图片。
可选地,所述将所述多张第一图片划入同一个图片分组,包括:
获取每个所述样本图片在第二方向上的尺寸;
判断所述样本图片中是否存在第一方向上的第一子尺寸小于第二阈值、且第二方向上的第二子尺寸大于所述第二阈值且小于所述第一阈值的第三图片,其中,所述第二阈值小于所述第一阈值,所述第一阈值和所述第二阈值之间的差值大于预设范围;
在存在所述第三图片、且所述第三图片的数量小于预设数量阈值的情况下,将所述第三图片沿顺指针或逆时针旋转90度;
基于旋转后的第三图片的第一子尺寸,与第二子尺寸在同一范围内的其余第一图片划入同一个图片分组。
可选地,通过目标分组中的多张第一图片生成第二图片,包括:
按照所述多张第一图片在第一方向上的最大尺寸和第二方向上的尺寸之和,生成边框方向位于所述第一方向和所述第二方向上的空白的第二图片;
将所述多张第一图片写入所述空白的第二图片中,得到包含所述多张第一图片的第二图片。
可选地,所述存储所述第二图片至所述存储器中包括:
确定所述第二图片的图片信息和记录字典,其中,所述记录字典中包含每个第一图片的第一标识、所述第一图片在所述第二图片中的位置信息以及所述第二图片的第二标识,其中,所述第一标识和所述位置信息、所述第二标识之间具有对应关系;
建立所述图片信息和所述记录字典之间的关联关系;
将所述关联关系保存至所述存储器中。
可选地,确定第一图片在所述第二图片中的位置信息包括:
以所述第二图片的中心点为原点,以所述第一方向为x轴,以所述第二方向为y轴建立平面直角坐标系;
确定所述第一图片的中心点在所述平面直角坐标系中的目标坐标,和所述第一图片在所述第一方向的第三尺寸和在所述第二方向的第四尺寸;
根据所述目标坐标、所述第三尺寸和所述第四尺寸,得到所述第一图片在所述第二图片中的位置信息。
第二方面,提供了一种图片读取方法,应用于图片解压端,所述方法包括:
获取目标图片的读取指令,其中,所述读取指令中携带有所述目标图片的第一标识;
根据所述第一标识,确定存储器中包含有所述目标图片的第二图片,其中,所述存储器用于以按照逻辑分区对齐的方式保存数据,所述第二图片包括在第一方向上的尺寸位于同一尺寸范围内的多张第一图片,所述第二图片的第一尺寸为所述多张第一图片在第一方向上的最大尺寸,所述第二图片的第二尺寸为所述多张第一图片在第二方向上的尺寸之和,所述第二方向与所述第一方向垂直;
根据所述第一标识确定所述目标图片在所述第二图片中的位置信息;
根据所述位置信息将所述目标图片从所述第二图片中切分出来。
第三方面,提供了一种图片存储装置,应用于图片压缩端,所述装置包括:
获取模块,用于获取多张样本图片,其中,所述多张样本图片为待保存至存储器的图片,所述存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据;
划分模块,用于按照所述样本图片在第一方向上的尺寸进行划分得到多个分组,其中,每个所述分组中包含多张第一图片,每个所述分组中的多张第一图片在所述第一方向上的尺寸位于同一尺寸范围内;
生成模块,用于通过目标分组中的多张第一图片生成第二图片,其中,所述第二图片的第一尺寸为所述多张第一图片在第一方向上的最大尺寸,所述第二图片的第二尺寸为所述多张第一图片在第二方向上的尺寸之和,所述第二方向与所述第一方向垂直;
存储模块,用于存储所述第二图片至所述存储器中。
第四方面,提供了一种图片读取装置,应用于图片解压端,所述装置包括:
获取模块,用于获取目标图片的读取指令,其中,所述读取指令中携带有所述目标图片的第一标识;
第一确定模块,用于根据所述第一标识,确定存储器中包含有所述目标图片的第二图片,其中,所述存储器用于以按照逻辑分区对齐的方式保存数据,所述第二图片包括在第一方向上的尺寸位于同一尺寸范围内的多张第一图片,所述第二图片的第一尺寸为所述多张第一图片在第一方向上的最大尺寸,所述第二图片的第二尺寸为所述多张第一图片在第二方向上的尺寸之和,所述第二方向与所述第一方向垂直;
第二确定模块,用于根据所述第一标识确定所述目标图片在所述第二图片中的位置信息;
切分模块,用于根据所述位置信息将所述目标图片从所述第二图片中切分出来。
第五方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现任一所述图片读取的方法步骤。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现任一图片读取所述的方法步骤。
本申请实施例提供的上述技术方案与现有技术相比具有如下优点:
在本申请中,由于第二图片的第一尺寸是第一图片在第一方向上的最大尺寸,第二图片的第二尺寸是多张第一图片在第二方向上的尺寸之和,因此,第二图片的尺寸等同于多张第一图片的实际尺寸的和值,最大程度减小了第二图片的尺寸,第二图片保存在存储器中,相当于多个第一图片共同保存在存储器的至少一个物理扇区中,相对于将每个第一图片分别保存在一个物理扇区中,本申请提高了存储器空间使用率。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种图片存储方法的流程图;
图2为本申请实施例提供的第一图片写入第二图片中的一种方式示意图;
图3为本申请实施例提供的第一图片写入第二图片中的另一种方式示意图;
图4为本申请实施例提供的图片压缩保存的流程图;
图5为本申请实施例提供的一种图片读取方法的流程图;
图6为本申请实施例提供的目标图片的读取过程的流程图;
图7为本申请实施例提供的一种图片存储装置的一种结构示意图;
图8为本申请实施例提供的一种图片读取装置的一种结构示意图;
图9为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例中的一种图片存储方法可以由执行图片压缩/封装的设备,如终端中的图片压缩软件、应用软件的安装包生成工具等,用于减少图片在存储器中的占用空间。
下面将结合具体实施方式,以安装包生成工具为例,对本申请实施例提供的一种图片存储方法进行详细的说明,如图1所示,具体步骤如下:
步骤101:获取多张样本图片。
其中,多张样本图片为待保存至存储器的图片,存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据。
在本申请实施例中,安装包生成工具在生成安装包的过程中需要用到多张样本图片,然后将样本图片保存至安装包中,安装包保存在存储器中。安装包生成工具获取待保存至存储器的多张样本图片。
存储器的物理扇区和计算机使用的逻辑扇区对齐,保证存储器硬盘的读写效率,也称作4k对齐。由于4k对齐机制,存储器的一个物理扇区只能至多保存一张图片,但不同的分区可以共同保存同一张图片,比如,若图片大小如果没超过存储器一个物理扇区的内存值,那么该图片单独保存在存储器的一个分区中,该物理扇区只能包含该一张图片。若图片大小如果超过了存储器一个物理扇区的内存值,那么该图片可以保存在存储器的至少两个分区中。
步骤102:按照样本图片在第一方向上的尺寸进行划分得到多个分组。
其中,每个分组中包含多张第一图片,每个分组中的多张第一图片在第一方向上的尺寸位于同一尺寸范围内。
样本图片的边框分别位于第一方向和第二方向,第一方向和第二方向垂直,其中,第一方向可以为样本图片的高度方向,第二方向为样本图片的宽度方向,或者,第一方向可以为样本图片的宽度方向,第二方向为样本图片的高度方向。
安装包压缩工具按照样本图片在第一方向上的尺寸,将样本图片划分至不同的分组中,每个分组中包含多张第一图片,每个分组中的多张第一图片在第一方向上的尺寸位于同一尺寸范围内。
步骤103:通过目标分组中的多张第一图片生成第二图片。
其中,第二图片的第一尺寸为多张第一图片在第一方向上的最大尺寸,第二图片的第二尺寸为多张第一图片在第二方向上的尺寸之和,第二方向与第一方向垂直。
安装包压缩工具确定目标分组中的多张第一图片,然后基于多种第一图片生成一个包含有多张第一图片的第二图片。第二图片具有第一方向上的第一尺寸和第二方向上的第二尺寸,其中,第一尺寸为多张第一图片在第一方向上的最大尺寸,第二方向与第一方向垂直,第二尺寸为多张第一图片在第二方向上的尺寸之和。这样第二图片中,第二方向上是占满了第一图片的,由于各第一图片在第一方向上的尺寸不一定相同,第二图片的第一方向上可能留有部分空间。
安装包压缩工具将样本图片按照第一方向的尺寸划分为多个图片分组,可以使每个图片分组中第一图片的第一方向的尺寸相近,避免第一方向的尺寸相差过多的第一图片写入同一个第二图片,这样可以进一步减小第二图片的尺寸,提高存储器的空间使用率。
若第一方向可以为样本图片的宽度方向,第二方向为样本图片的高度方向,则第二图片的第一尺寸为多张第一图片中的最大宽度值,第二尺寸为多张第一图片的高度和值,即将多张第一图片中的最大宽度值作为第二图片的宽度值,将多张第一图片的高度和值作为第二图片的高度值。
若第一方向可以为样本图片的高度方向,第二方向为样本图片的宽度方向,则第二图片的第一尺寸为多张第一图片中的最大高度值,第二尺寸为多张第一图片的宽度和值,即将多张第一图片中的最大高度值作为第二图片的高度值,将多张第一图片的宽度和值作为第二图片的宽度值。
步骤104:存储第二图片至存储器中。
安装包压缩工具得到第二图片后,将第二图片压缩打包保存安装包中,以便于后续安装包解压缩后,能够读取第二图片中的第一图片。
在本申请中,安装包压缩工具按照第一方向上的最大尺寸和第二方向上的尺寸之和,得到包含多张第一图片的第二图片,第二图片的整体尺寸较大,占用物理扇区的内存较多,这样可以使多张第一图片保存在一个物理扇区中,或共同保存在至少两个物理扇区中,无需每个第一图片占用一个物理扇区,减小存储器4k内存空间的浪费。
作为一种可选的实施方式,按照样本图片在第一方向上的尺寸进行划分得到多个分组,包括:获取每个样本图片在第一方向上的尺寸;从样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片;将多张第一图片划入同一个图片分组。
安装包压缩工具中设有不同的阈值,该阈值用于划分样本图片至不同的分组中。具体的,安装包压缩工具确定每个样本图片在第一方向上的尺寸,然后选取第一方向上的尺寸小于第一阈值的多张第一图片,将多张第一图片划入同一个图片分组。
示例性地,按照样本图片在第一方向的尺寸,可以划分为如下分组:0px~20px、20px~30px、30px~40px、40px~50px、60px~80px、>80px。其中,Px英文为Pixel,指像素基本原色素及其灰度的基本编码。
作为一种可选的实施方式,从样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片包括:从样本图片中选取占用内存空间小于存储器的物理扇区阈值的待划分图片,其中,存储器包括多个物理扇区,每个物理扇区具有内存阈值;从待划分图片中选取第一方向上的尺寸小于第一阈值的多张第一图片。
对于内存占用空间大于存储器的物理扇区阈值的样本图片,由于该样本图片不会造成很大的内存浪费,因此,该样本图片无需进行图片合并。因此,安装包压缩工具从样本图片中选取出占用内存空间小于物理扇区阈值的待划分图片,由于待划分图片占用存储器内存过小,会浪费存储器的物理扇区内存,安装包压缩工具选取的第一图片是从待划分图片中得到的。示例性地,物理扇区阈值为物理扇区空间的80%。
示例性地,第一方向上的尺寸位于80px以下的样本图片会浪费4k内存,则将其作为待划分图片,而第一方向上的尺寸位80px以上的样本图片,由于4k内存浪费较少,则不进行图片合并。
作为一种可选的实施方式,将多张第一图片划入同一个图片分组,包括:获取每个样本图片在第二方向上的尺寸;判断样本图片中是否存在第一方向上的第一子尺寸小于第二阈值、且第二方向上的第二子尺寸大于第二阈值且小于第一阈值的第三图片,其中,第二阈值小于第一阈值,第一阈值和第二阈值之间的差值大于预设范围;在存在第三图片、且第三图片的数量小于预设数量阈值的情况下,将第三图片沿顺指针或逆时针旋转90度;基于旋转后的第三图片的第一子尺寸,与第二子尺寸在同一范围内的其余第一图片划入同一个图片分组。
在本申请中,若第一方向为样本图片的高度,第二方向样本图片的宽度,安装包压缩工具确定每个样本图片的宽度,若确定样本图片中存在高度小于第二阈值,且宽度大于第二阈值小于第一阈值的第三图片,若第三图片的数量小于预设数量阈值,表明第三图片数量很少,与其他图片进行合并,会造成在高度方向的空间浪费,则可以将第三图片沿顺指针或逆时针旋转90度,第三图片的原本宽度成为旋转后的高度,这样第三图片旋转后的高度与其他第一图片的高度在同一范围内,可以将第三图片与其他高度在同一范围内的第一图片划分到同一个分组,便于后续共同合并为第二图片。
在本申请中,若第一方向为样本图片的宽度,第二方向样本图片的高度,安装包压缩工具确定每个样本图片的高度,若确定样本图片中存在宽度小于第二阈值,且高度大于第二阈值小于第一阈值的第三图片,若第三图片的数量小于预设数量阈值,表明第三图片数量很少,与其他图片进行合并,会造成在宽度方向的空间浪费,则可以将第三图片沿顺指针或逆时针旋转90度,第三图片的原本高度成为旋转后的宽度,这样第三图片旋转后的宽度与其他第一图片的宽度在同一范围内,可以将第三图片与其他宽度在同一范围内的第一图片划分到同一个分组,便于后续共同合并为第二图片。
作为一种可选的实施方式,通过目标分组中的多张第一图片生成第二图片,包括:按照多张第一图片在第一方向上的最大尺寸和第二方向上的尺寸之和,生成边框方向位于第一方向和第二方向上的空白的第二图片;将多张第一图片写入空白的第二图片中,得到包含多张第一图片的第二图片。
安装包压缩工具可以将多张第一图片在第一方向上的最大尺寸,作为第二图片在第一方向上的第一尺寸,并将多张第一图片在第二方向上的尺寸之和,作为第二图片在第二方向上的第二尺寸。安装包压缩工具按照上述方式生成一个空白的第二图片,然后将多张第一图片写入空白的第二图片中,第一图片在第二图片中互不重叠的排列,得到包含多张第一图片的第二图片。
图2为第一图片写入第二图片中的一种方式示意图。可以看出,有五个第一图片,分别命名为1、2、3、4、5,第二图片big_pic1的宽度为第一图片的最大宽度值,第二图片的高度为多张第一图片的高度和值。
图3为第一图片写入第二图片中的另一种方式示意图。可以看出,有五个第一图片,分别命名为1、2、3、4、5,第二图片big_pic1的高度为多张第一图片的最大高度值,第二图片的宽度为多张第一图片的宽度和值。
作为一种可选的实施方式,存储第二图片至存储器中包括:确定第二图片的图片信息和记录字典,其中,记录字典中包含每个第一图片的第一标识、第一图片在第二图片中的位置信息以及第二图片的第二标识,其中,第一标识和位置信息、第二标识之间具有对应关系。建立图片信息和记录字典之间的关联关系。将关联关系保存至存储器中。
安装包压缩工具记录第一图片的第一标识和第一图片在第二图片中的位置信息和第二图片的第二标识,并建立第一标识和位置信息、第二标识之间的对应关系,然后将该对应关系保存至记录字典中。安装包压缩工具还建立第二图片的图片信息和记录字典之间的关联关系,将关联关系保存至存储器中。这样在读取第一图片的过程中,可以通过第一标识确定第二标识,继而确定包含第一图片的第二图片,然后根据第一图片在第二图片中的位置信息将第一图片从第二图片中切分出来。其中,第一标识能够唯一标识第一图片,第二标识能够唯一标识第二图片,第一标识和第二标识可以字符串、图片名称、数值等,本申请对第一标识和第二标识的具体实现方式不做限定。
示例性地,安装包压缩工具以第一标识img_name为key,以第一图片在第二图片中的坐标(x,y)、第一图片的宽度w、高度h、第二标识big_pic1作为value存入记录字典dic,将第二图片保存为图片信息big_pic1,将图片信息和记录字典dic保存为目标信息big_pic1_image_info,最后将目标信息big_pic1_image_info存入应用程序安装包,若有N组图片分组,则安装包压缩工具将每个图片分组生成一个目标信息big_picN_image_info,最后将所有目标信息存入应用程序安装包。
图4为图片压缩保存的流程图。可以看到,样本图片过滤掉不需要分组的图片,剩余的样本图片划分至多个分组中,每个分组中包括图片信息和记录字典,将多个分组的图片信息和记录字典打包后写入应用程序安装包。
第二图片保存在应用程序安装包中,第二图片减小了存储器的占用空间,应用程序安装包保存在该存储器中,即应用程序安装包也减小了存储器的占用空间,本申请将第一图片写入第二图片中,减小了应用程序安装包的体积,减小应用程序安装包在存储器中的占用空间,提高存储器空间使用率。
作为一种可选的实施方式,确定第一图片在第二图片中的位置信息包括:以第二图片的中心点为原点,以第一方向为x轴,以第二方向为y轴建立平面直角坐标系;确定第一图片的中心点在平面直角坐标系中的目标坐标,和第一图片在第一方向的第三尺寸和在第二方向的第四尺寸;根据目标坐标、第三尺寸和第四尺寸,得到第一图片在第二图片中的位置信息。
可选地,位置信息是根据第一图片在第二图片中的坐标和第一图片的宽度、高度确定的。具体的,安装包压缩工具以第二图片的第二中心点为原点,以水平方向为x轴,以竖直方向为y轴建立平面直角坐标系,采用第一图片的第一中心点代表第一图片,将第一中心点在平面直角坐标系中的坐标作为第一图片在第二图片中的坐标。然后以该坐标点为中心,沿宽度方向朝两侧分别延伸宽度值的一半,沿高度方向朝两侧分别延伸高度值的一半,得到第一图片在第二图片中的具体位置。其中,第一中心点和第二中心点也可以替换为其他点位,本申请对代表第一图片和代表第二图片的点的位置不做具体限制。
本申请实施例还提供了一种图片读取方法,应用于图片解压端,本申请以终端为例对图片读取方法进行描述,如图5所示,方法包括:
步骤501:获取目标图片的读取指令。
其中,读取指令中携带有目标图片的第一标识。
在本申请实施例中,用户若想要读取目标图片,则输入目标图片的第一标识,终端获取目标图片的读取指令,然后识别读取指令中携带有目标图片的第一标识。
步骤502:根据第一标识,确定存储器中包含有目标图片的第二图片。
应用程序首次启动后,加载程序内包含的图片信息和记录字典,从读入终端的存储器中,其中,终端的存储器用于以按照逻辑分区对齐的方式保存数据,第二图片包括在第一方向上的尺寸位于同一尺寸范围内的多张第一图片,第二图片的第一尺寸为多张第一图片在第一方向上的最大尺寸,第二图片的第二尺寸为多张第一图片在第二方向上的尺寸之和,第二方向与第一方向垂直。
终端根据第一标识和第二标识的对应关系,确定第二标识对应的第二图片,其中,第二图片中包含有第一图片。
步骤503:根据第一标识确定目标图片在第二图片中的位置信息。
终端确定第二图片后,根据第一标识和位置信息的对应关系,确定目标图片在第二图片中的位置信息。
步骤504:根据位置信息将目标图片从第二图片中切分出来。
安装包压缩工具根据目标图片在第二图片中的位置信息,将目标图片从第二图片中切分出来。
图6为目标图片的读取过程的流程图。目标终端确定目标图片的第一标识img_name,然后调用系统原生读取图片方法在终端的存储空间中读取目标图片,若能够读取到,则将目标图片反馈至调用方。若未能读取到,则将img_name作为key在记录字典dic中查找value,若无法查找到value,则返回空值给调用方,若能够查找到value,则根据value中记录的图片信息big_pic,调用系统原生读取图片方法在目标终端的存储空间中读取第二图片big_pic,然后根据value中记录的坐标(x,y)、第一图片的宽度w、高度h,在第二图片big_pic中切出目标图片,反馈目标图片给调用方。
基于相同的技术构思,本申请实施例还提供了一种图片存储装置,应用于图片压缩端,如图7所示,该装置包括:
获取模块701,用于获取多张样本图片,其中,多张样本图片为待保存至存储器的图片,存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据;
划分模块702,用于按照样本图片在第一方向上的尺寸进行划分得到多个分组,其中,每个分组中包含多张第一图片,每个分组中的多张第一图片在第一方向上的尺寸位于同一尺寸范围内;
生成模块703,用于通过目标分组中的多张第一图片生成第二图片,其中,第二图片的第一尺寸为多张第一图片在第一方向上的最大尺寸,第二图片的第二尺寸为多张第一图片在第二方向上的尺寸之和,第二方向与第一方向垂直;
存储模块704,用于存储第二图片至存储器中。
可选地,划分模块702用于:
获取每个样本图片在第一方向上的尺寸;
从样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片;
将多张第一图片划入同一个图片分组。
可选地,划分模块702还用于:
从样本图片中选取占用内存空间小于存储器的物理扇区阈值的待划分图片,其中,存储器包括多个物理扇区,每个物理扇区具有内存阈值;
从待划分图片中选取第一方向上的尺寸小于第一阈值的多张第一图片。
可选地,划分模块702用于:
获取每个样本图片在第二方向上的尺寸;
判断样本图片中是否存在第一方向上的第一子尺寸小于第二阈值、且第二方向上的第二子尺寸大于第二阈值且小于第一阈值的第三图片,其中,第二阈值小于第一阈值,第一阈值和第二阈值之间的差值大于预设范围;
在存在第三图片、且第三图片的数量小于预设数量阈值的情况下,将第三图片沿顺指针或逆时针旋转90度;
基于旋转后的第三图片的第一子尺寸,与第二子尺寸在同一范围内的其余第一图片划入同一个图片分组。
可选地,生成模块703用于:
按照多张第一图片在第一方向上的最大尺寸和第二方向上的尺寸之和,生成边框方向位于第一方向和第二方向上的空白的第二图片;
将多张第一图片写入空白的第二图片中,得到包含多张第一图片的第二图片。
可选地,存储模块704用于:
确定第二图片的图片信息和记录字典,其中,记录字典中包含每个第一图片的第一标识、第一图片在第二图片中的位置信息以及第二图片的第二标识,其中,第一标识和位置信息、第二标识之间具有对应关系;
建立图片信息和记录字典之间的关联关系;
将关联关系保存至存储器中。
可选地,存储模块704还用于:
以第二图片的中心点为原点,以第一方向为x轴,以第二方向为y轴建立平面直角坐标系;
确定第一图片的中心点在平面直角坐标系中的目标坐标,和第一图片在第一方向的第三尺寸和在第二方向的第四尺寸;
根据目标坐标、第三尺寸和第四尺寸,得到第一图片在第二图片中的位置信息。
基于相同的技术构思,本申请实施例还提供了一种图片读取装置,应用于图片解压端,如图8所示,该装置包括:
获取模块801,用于获取目标图片的读取指令,其中,读取指令中携带有目标图片的第一标识;
第一确定模块802,用于根据第一标识,确定存储器中包含有目标图片的第二图片,其中,存储器用于以按照逻辑分区对齐的方式保存数据,第二图片包括在第一方向上的尺寸位于同一尺寸范围内的多张第一图片,第二图片的第一尺寸为多张第一图片在第一方向上的最大尺寸,第二图片的第二尺寸为多张第一图片在第二方向上的尺寸之和,第二方向与第一方向垂直;
第二确定模块803,用于根据第一标识确定目标图片在第二图片中的位置信息;
切分模块804,用于根据位置信息将目标图片从第二图片中切分出来。
基于相同的技术构思,本发明实施例还提供了一种电子设备,如图9所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现上述步骤。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一方法的步骤。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本发明的具体实施方式,使本领域技术人员能够理解或实现本发明。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。
Claims (7)
1.一种图片存储方法,应用于图片压缩端,其特征在于,所述方法包括:
获取多张样本图片,其中,所述多张样本图片为待保存至存储器的图片,所述存储器用于以按照物理扇区和逻辑扇区对齐的方式保存数据;
按照所述样本图片在第一方向上的尺寸进行划分得到多个分组,其中,每个所述分组中包含多张第一图片,每个所述分组中的多张第一图片在所述第一方向上的尺寸位于同一尺寸范围内;
通过目标分组中的多张第一图片生成第二图片,其中,所述第二图片的第一尺寸为所述多张第一图片在第一方向上的最大尺寸,所述第二图片的第二尺寸为所述多张第一图片在第二方向上的尺寸之和,所述第二方向与所述第一方向垂直;
存储所述第二图片至所述存储器中;
其中,所述按照所述样本图片在第一方向上的尺寸进行划分得到多个分组,包括:
获取每个所述样本图片在第一方向上的尺寸;
从所述样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片;
将所述多张第一图片划入同一个图片分组;
其中,所述将所述多张第一图片划入同一个图片分组,包括:
获取每个所述样本图片在第二方向上的尺寸;
判断所述样本图片中是否存在第一方向上的第一子尺寸小于第二阈值、且第二方向上的第二子尺寸大于所述第二阈值且小于所述第一阈值的第三图片,其中,所述第二阈值小于所述第一阈值,所述第一阈值和所述第二阈值之间的差值大于预设范围;
在存在所述第三图片、且所述第三图片的数量小于预设数量阈值的情况下,将所述第三图片沿顺指针或逆时针旋转90度;
基于旋转后的第三图片的第一子尺寸,与第二子尺寸在同一范围内的其余第一图片划入同一个图片分组。
2.根据权利要求1所述的方法,其特征在于,所述从所述样本图片中选取第一方向上的尺寸小于第一阈值的多张第一图片包括:
从所述样本图片中选取占用内存空间小于所述存储器的物理扇区阈值的待划分图片,其中,所述存储器包括多个物理扇区,每个所述物理扇区具有内存阈值;
从所述待划分图片中选取第一方向上的尺寸小于第一阈值的多张第一图片。
3.根据权利要求1所述的方法,其特征在于,通过目标分组中的多张第一图片生成第二图片,包括:
按照所述多张第一图片在第一方向上的最大尺寸和第二方向上的尺寸之和,生成边框方向位于所述第一方向和所述第二方向上的空白的第二图片;
将所述多张第一图片写入所述空白的第二图片中,得到包含所述多张第一图片的第二图片。
4.根据权利要求1所述的方法,其特征在于,所述存储所述第二图片至所述存储器中包括:
确定所述第二图片的图片信息和记录字典,其中,所述记录字典中包含每个第一图片的第一标识、所述第一图片在所述第二图片中的位置信息以及所述第二图片的第二标识,其中,所述第一标识和所述位置信息、所述第二标识之间具有对应关系;
建立所述图片信息和所述记录字典之间的关联关系;
将所述关联关系保存至所述存储器中。
5.根据权利要求4所述的方法,其特征在于,确定第一图片在所述第二图片中的位置信息包括:
以所述第二图片的中心点为原点,以所述第一方向为x轴,以所述第二方向为y轴建立平面直角坐标系;
确定所述第一图片的中心点在所述平面直角坐标系中的目标坐标,和所述第一图片在所述第一方向的第三尺寸和在所述第二方向的第四尺寸;
根据所述目标坐标、所述第三尺寸和所述第四尺寸,得到所述第一图片在所述第二图片中的位置信息。
6.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110852760.5A CN113568578B (zh) | 2021-07-27 | 2021-07-27 | 一种图片处理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110852760.5A CN113568578B (zh) | 2021-07-27 | 2021-07-27 | 一种图片处理方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113568578A CN113568578A (zh) | 2021-10-29 |
CN113568578B true CN113568578B (zh) | 2023-10-10 |
Family
ID=78168089
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110852760.5A Active CN113568578B (zh) | 2021-07-27 | 2021-07-27 | 一种图片处理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113568578B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6686955B1 (en) * | 1999-01-29 | 2004-02-03 | International Business Machines Corporation | Lightweight image manipulation for maximizing the capacity of digital photo storage media |
KR20050094544A (ko) * | 2004-03-23 | 2005-09-28 | 삼성전자주식회사 | 화상데이터의 압축전송방법과 그 방법을 구비한화상형성시스템 |
KR20070093204A (ko) * | 2006-03-13 | 2007-09-18 | 주식회사 텔스톤 | 온라인을 통한 이미지 합성 시스템 및 합성 방법 |
CN103164452A (zh) * | 2011-12-15 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 图片存储和读取的方法、装置及系统 |
CN106802773A (zh) * | 2017-01-13 | 2017-06-06 | 刘超 | 一种存储空间的管理方法及移动终端 |
WO2018050080A1 (zh) * | 2016-09-13 | 2018-03-22 | 努比亚技术有限公司 | 一种移动终端、图片处理方法及计算机存储介质 |
CN110633261A (zh) * | 2019-09-02 | 2019-12-31 | 恩亿科(北京)数据科技有限公司 | 一种图片存储方法、图片查询方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103826028B (zh) * | 2012-11-19 | 2017-08-25 | 腾讯科技(深圳)有限公司 | 一种无损压缩图片的方法和装置 |
-
2021
- 2021-07-27 CN CN202110852760.5A patent/CN113568578B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6686955B1 (en) * | 1999-01-29 | 2004-02-03 | International Business Machines Corporation | Lightweight image manipulation for maximizing the capacity of digital photo storage media |
KR20050094544A (ko) * | 2004-03-23 | 2005-09-28 | 삼성전자주식회사 | 화상데이터의 압축전송방법과 그 방법을 구비한화상형성시스템 |
KR20070093204A (ko) * | 2006-03-13 | 2007-09-18 | 주식회사 텔스톤 | 온라인을 통한 이미지 합성 시스템 및 합성 방법 |
CN103164452A (zh) * | 2011-12-15 | 2013-06-19 | 深圳市腾讯计算机系统有限公司 | 图片存储和读取的方法、装置及系统 |
WO2018050080A1 (zh) * | 2016-09-13 | 2018-03-22 | 努比亚技术有限公司 | 一种移动终端、图片处理方法及计算机存储介质 |
CN106802773A (zh) * | 2017-01-13 | 2017-06-06 | 刘超 | 一种存储空间的管理方法及移动终端 |
CN110633261A (zh) * | 2019-09-02 | 2019-12-31 | 恩亿科(北京)数据科技有限公司 | 一种图片存储方法、图片查询方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113568578A (zh) | 2021-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194960B (zh) | 一种图像帧渲染方法、装置及电子设备 | |
CN110865888A (zh) | 一种资源加载方法、装置、服务器及存储介质 | |
CN109885577B (zh) | 数据处理方法、装置、终端及存储介质 | |
CN107391544B (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN109213450B (zh) | 一种基于闪存阵列的关联元数据删除方法、装置及设备 | |
CN115470156A (zh) | 基于rdma的内存使用方法、系统、电子设备和存储介质 | |
CN111803917A (zh) | 资源的处理方法和装置 | |
CN115357155A (zh) | 窗口识别方法、装置、设备及计算机可读存储介质 | |
CN114816240A (zh) | 一种数据写入方法及一种数据读取方法 | |
CN113568578B (zh) | 一种图片处理方法、装置、电子设备和可读存储介质 | |
CN111553847B (zh) | 图像处理方法及装置 | |
CN112000589A (zh) | 一种数据写入方法、数据读取方法、装置及电子设备 | |
CN114328747A (zh) | 数据同步方法、装置、计算机设备和介质 | |
CN112433778B (zh) | 一种移动设备页面显示方法、装置、电子设备及存储介质 | |
CN113722623A (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN110782389B (zh) | 一种图像数据字节对齐方法和终端 | |
CN112950456A (zh) | 图像处理方法及装置、电子设备、计算机可读介质 | |
CN113051105A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN109582938B (zh) | 报表生成方法和装置 | |
CN112035656A (zh) | 文档快速预览的方法、装置、计算机设备及介质 | |
CN116719483B (zh) | 数据去重方法、装置、存储设备和计算机可读存储介质 | |
CN113238852B (zh) | 一种任务分配方法、装置、电子设备及存储介质 | |
CN117234442B (zh) | 数据打印方法、装置、计算机设备及计算机可读存储介质 | |
CN111625192B (zh) | 一种元数据对象访问方法、装置、设备以及介质 | |
CN115793976A (zh) | 数据存储方法、装置、电子设备和可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |