文件碎片合并方法、装置及电子设备
技术领域
本发明涉及计算机软件领域,具体涉及一种文件碎片合并方法、装置及电子设备。
背景技术
随着网络的发展,文件被广泛的传播。为保护文件的合法使用,有时会将文件中包含的图片进行切割。在显示时,用户看到的是一张完整的图片;但实际文件中包含的是多个图片的碎片,这些碎片组合成一种完整的图片。这样既不影响用户的观看,同时保护了原图片,使得原图片不会直接被盗用等情况。
图片被切割后,如果需要再将图片显示在其他文件中时,需要将图片切割后的碎片重新进行合并。但由于图片在切割时,图片中碎片的尺寸可以随意,大多在切割图片时,将碎片的尺寸设置为浮点型数据,如17.5x18.2。由于碎片的尺寸不是整数,使得将其重新合并时,多个碎片间会存在空隙。空隙会显示为重新合并的碎片所在的画布的底色。这样用户在观看时,看到的图片中会存在多条底色,使得用户的观感不佳。因此,需要一种碎片合并的方法,以解决这种问题。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的文件碎片合并方法、装置及电子设备。
根据本发明的一个方面,提供了一种文件碎片合并方法,其包括:
将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;
根据第一画布的尺寸,设置第二画布;
建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;
依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到第二画布上。
根据本发明的另一方面,提供了一种文件碎片合并装置,其包括:
碎片存储模块,适于将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;
画布设置模块,适于根据第一画布的尺寸,设置第二画布;
绘制点集模块,适于建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;
绘制模块,适于依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片;
更新绘制点集模块,适于将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中;
循环模块,适于重复执行绘制模块和更新绘制点集模块,直至所存储的第二碎片均绘制到第二画布上。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述文件碎片合并方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如上述文件碎片合并方法对应的操作。
根据本发明提供的文件碎片合并方法、装置及电子设备,将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;根据第一画布的尺寸,设置第二画布;建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到第二画布上。将第一画布中的多个第一碎片处理后得到第二碎片,并相应的设置第二画布。通过建立绘制点集,依次从绘制点集中选取一个绘制点,与多个第一碎片中的第一边角坐标进行比较,选择坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例一的文件碎片合并方法的流程图;
图2示出了根据本发明实施例二的文件碎片合并方法的流程图;
图3示出了根据本发明实施例三的文件碎片合并方法的流程图;
图4示出了根据本发明实施例四的文件碎片合并装置的功能框图;
图5示出了根据本发明实施例五的文件碎片合并装置的功能框图;
图6示出了根据本发明实施例七的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
实施例一
图1示出了根据本发明实施例一的文件碎片合并方法的流程图,如图1所示,文件碎片合并方法包括如下步骤:
步骤S101,将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片。
第一画布中分布了多个第一碎片,由于第一碎片的尺寸可能会存在浮点型数值,但在将其存储在终端设备本地磁盘时,受到存储规则的限制,尺寸只能为整型数值。因此需要对第一碎片进行处理,将第一碎片的尺寸进行取整处理,得到对应的整型数值的尺寸。按照对应的整型数值的尺寸将多个第一碎片对应的存储为多个第二碎片。
进一步,在存储第二碎片时,同时存储了第二碎片和第一碎片的对应关系。通过对应关系,方便找到第一碎片对应的第二碎片。
步骤S102,根据第一画布的尺寸,设置第二画布。
第一画布的尺寸可能会存在浮点型数值,对应的设置第二画布时,需要将第一画布的尺寸进行取整处理,得到对应的整型数值的尺寸。按照对应的整型数值的尺寸设置第二画布的尺寸。
进一步,此处不限定步骤S101和步骤S102执行的先后顺序,两步骤可并列执行,也可先执行其中任一步骤。
步骤S103,建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中。
建立空的绘制点集,绘制点集可以存储一个或多个的绘制点的坐标。首先将第二画布的起始绘制点的坐标保存在绘制点集中,起始绘制点的坐标可以为第二画布的左上角的坐标如(0,0);或可以为第二画布的右上角的坐标如(X,0);或可以为第二画布的坐下角的坐标如(0,Y);或可以为第二画布的右下角的坐标如(X,Y)。具体可以根据实施时的情况进行设置,此处不做限定。
步骤S104,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片。
若绘制点集中仅存储一个绘制点时,从绘制点集中选取该绘制点。若绘制点集中存储了多个绘制点时,从绘制点集中选取一个绘制点。
在多个第一碎片中查找其第一边角的坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片。如选取的绘制点的坐标为(10,10),预设阈值可以设置为如1,从多个第一碎片的第一边角的坐标中查找与绘制点的坐标(10,10)距离小于或等于1的坐标。如多个第一碎片中的一个第一碎片的第一边角的坐标为(9.5,9.3),一个第一碎片的第一边角的坐标为(18.7,18.3),一个第一碎片的第一边角的坐标为(30.1,9.3),从这些第一碎片的第一边角的坐标中找到与绘制点的坐标(10,10)的距离小于或等于1的坐标的第一碎片,即坐标为(9.5,9.3)的第一碎片。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合第一碎片的第一边角的坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。
其中,第一碎片的第一边角的坐标可以为第一碎片任一边角的坐标,此处不做具体限定。进一步,为提高查找第一碎片的速度,可以根据选取的绘制点的坐标与第二画布的位置关系选择合适的第一碎片的某一边角的坐标作为第一边角的坐标。如选取的绘制点的坐标位于第二画布的左上角位置,选择第一碎片的左上边角的坐标作为第一边角的坐标。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做限定。
步骤S105,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
以选取的绘制点的坐标如(10,10)为起始点,将步骤S104查找到的第一碎片对应的第二碎片绘制在第二画布上。即在第二画布的坐标为(10,10)处开始进行绘制,将步骤S104查找到的第一碎片对应的第二碎片绘制在第二画布上。其中,第二碎片可以通过其与第一碎片的对应关系得到。
步骤S106,将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中。
在步骤S105绘制完成后,将该绘制完成的第二碎片在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中。其中,第二碎片的第二边角和第三边角,可以选择除与第一碎片对应的第一边角外,其余边角中的两个边角。这两个边角的连线为第二碎片的对角线。
进一步,在将该已绘制的第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集后,还可以将步骤S104中选取的已使用的绘制点废弃。废弃时可以从绘制点集中删除该已使用的绘制点的坐标,也可以将该已使用的绘制点的坐标标记为废弃状态。这样使得在选取绘制点时,已使用的绘制点不会再次被选取到。
步骤S107,判断所存储的第二碎片是否均绘制到第二画布上。
判断所存储的第二碎片是否均已绘制到第二画布上,若还有第二碎片没有绘制到第二画布上,重复执行步骤S104。否则,执行步骤S108。
进一步,在绘制第二碎片后,可以将存储的该第二碎片进行标记,标记该第二碎片已经绘制。在判断所存储的第二碎片是否均绘制到第二画布上时,通过标记可以方便的找到是否还有第二碎片没有绘制到第二画布上。
步骤S108,绘制结束。
若所存储的第二碎片均绘制到第二画布上,即第二画布上所有碎片均绘制完成,得到完整的画布内容,此时绘制结束。
进一步,碎片可以为图片碎片,也可为文字碎片,或文字和图片都包含的碎片。
根据本发明提供的文件碎片合并方法,将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;根据第一画布的尺寸,设置第二画布;建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到第二画布上。将第一画布中的多个第一碎片处理后得到第二碎片,并相应的设置第二画布。通过建立绘制点集,依次从绘制点集中选取一个绘制点,与多个第一碎片中的第一边角坐标进行比较,选择坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。
实施例二
图2示出了根据本发明实施例二的文件碎片合并方法的流程图,如图2所示,文件碎片合并方法具体包括如下步骤:
步骤S201,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。
步骤S202,按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。
将分布在第一画布中的多个第一碎片的尺寸向上取整得到对应的整型数值的尺寸。如一个第一碎片的尺寸为17.5x19.2,将其尺寸向上取整,得到整形数值的尺寸为18x20。多个第一碎片的尺寸均一一向上取整,若第一碎片的尺寸为整型数值时,保持第一碎片的尺寸,不对其进行处理。若所有第一碎片的尺寸均为整型数值时,可跳过步骤S201,直接执行步骤S202。
若用户想得到第一碎片放大或缩小后的对应的第二碎片进行合并时,可以预设比例尺。如预设的比例尺为1:10,即将原第一碎片放大至10倍,得到对应的放大至10倍的第二碎片;或预设的比例尺为2:1,即将原第一碎片缩小至原来的二分之一,得到对应的缩小至二分之一的第二碎片。若用户不想对第一碎片进行放大或缩小的改变,可以将预设的比例尺设置为1:1。
在得到第一碎片对应的整型数值的尺寸后,根据预设的比例尺进行处理,得到对应的第二碎片的尺寸。如第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为1:10,对应的第二碎片的尺寸为180x200;或第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为2:1,对应的第二碎片的尺寸为9x10;或第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为1:1,对应的第二碎片的尺寸为18x20。将对应的第一碎片按照该处理得到的对应的尺寸存储为第二碎片。将第二碎片存储在本地磁盘的预设位置中,存储时还同时记录第二碎片与第一碎片的对应的标识。如存储时,可设置配置文件,记录第二碎片名称与第一碎片名称一一对应的关系;或将第二碎片的名称存储为预设前缀或预设后缀+第一碎片的名称等。具体的实现方式可根据实际情况进行设置,此处不做限定。
步骤S203,将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。
步骤S204,按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。
将第一画布的尺寸向下取整得到对应的整型数值的尺寸。如第一画布的尺寸为200.5x180.2,将其尺寸向上取整,得到整形数值的尺寸为200x180。若第一画布的尺寸为整型数值时,可跳过步骤S203,直接执行步骤S204。
预设的比例尺为第二碎片和第二画布共用的比例尺。在得到第一画布对应的整型数值的尺寸后,根据预设的比例尺进行处理,得到对应的第二画布的尺寸。如第一画布对应的整型数值的尺寸为200x180,预设的比例尺为1:10,对应的第二画布的尺寸为2000x1800;或第一画布对应的整型数值的尺寸为200x180,预设的比例尺为2:1,对应的第二画布的尺寸为100x90;或第一画布对应的整型数值的尺寸为200x180,预设的比例尺为1:1,对应的第二画布的尺寸为200x180。
进一步,步骤S201和步骤S202为先后执行的步骤,步骤S203和步骤S204为先后执行的步骤。但此处不限定步骤S201、S202与步骤S203、步骤S204执行的先后顺序。步骤S201和步骤S202执行过程中,可以并列执行步骤S203和步骤S204,也可以先执行步骤S201和步骤S202,后执行步骤S203和步骤S204,或先执行步骤S203和步骤S204,后执行步骤S201和步骤S202。
通过执行以上步骤,得到向上取整处理后的对应的第二碎片的尺寸和向下取整处理后的对应的第二画布的尺寸。这样处理使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。
步骤S205,建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中。
建立空的绘制点集,绘制点集可以存储一个或多个的绘制点的坐标。首先将第二画布的起始绘制点的坐标保存在绘制点集中,起始绘制点的坐标可以为第二画布的左上角的坐标如(0,0);或可以为第二画布的右上角的坐标如(X,0);或可以为第二画布的坐下角的坐标如(0,Y);或可以为第二画布的右下角的坐标如(X,Y)。具体可以根据实施时的情况进行设置,此处不做限定。
步骤S206,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片。
若绘制点集中仅存储一个绘制点时,从绘制点集中选取该绘制点。若绘制点集中存储了多个绘制点时,从绘制点集中选取一个绘制点。
此处预设比例尺为步骤S202和步骤S204中的同一预设的比例尺。
在多个第一碎片中查找其第一边角的坐标与之前选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片。如选取的绘制点的坐标为(100,100),预设的比例尺为1:10,预设阈值可以设置为如1。在多个第一碎片的第一边角的坐标中查找与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标。如多个第一碎片中的一个第一碎片的第一边角的坐标为(9.5,9.3),一个第一碎片的第一边角的坐标为(18.7,18.3),一个第一碎片的第一边角的坐标为(30.1,9.3),从这些第一碎片的第一边角的坐标中找到与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标的第一碎片,即坐标为(9.5,9.3)的第一碎片。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合第一碎片的第一边角的坐标与之前选取的绘制点的坐标按照预设比例尺计算后得到的坐标之间的距离小于或等于预设阈值。
其中,第一碎片的第一边角的坐标可以为第一碎片任一边角的坐标,此处不做具体限定。进一步,为提高查找第一碎片的速度,可以根据选取的绘制点的坐标与第二画布的位置关系选择合适的第一碎片的某一边角的坐标作为第一边角的坐标。如选取的绘制点的坐标位于第二画布的左上角位置,选择第一碎片的左上边角的坐标作为第一边角的坐标。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做限定。
步骤S207,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
步骤S208,将该第二碎片的绘制在第二画布上第二边角的坐标和第三边角的坐标保存在绘制点集中。
步骤S209,判断所存储的第二碎片是否均绘制到第二画布上。
步骤S210,绘制结束。
步骤S207-步骤S210可参考图1实施例中步骤S105-步骤S108的描述,在此不再赘述。
根据本发明提供的文件碎片合并方法,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。通过向上取整处理后得到的对应的第二碎片的尺寸和向下取整处理后得到的对应的第二画布的尺寸,使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。在通过建立绘制点集,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。进一步,根据用户需要可以预设比例尺对第一画布和第一碎片放大或缩小,进而得到对应的第二碎片进行合并,获取对应的绘制后的放大或缩小的第二画布。
实施例三
图3示出了根据本发明实施例三的文件碎片合并方法的流程图,如图3所示,文件碎片合并方法具体包括如下步骤:
步骤S301,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。
步骤S302,按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。
步骤S303,将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。
步骤S304,按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。
步骤S305,建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中。
以上步骤可参考图2实施例中的步骤S201-步骤S205,在此不再赘述。
步骤S306,建立第一碎片坐标点集,将多个第一碎片的坐标保存在第一碎片坐标点集中。
建立第一碎片坐标点集,将多个第一碎片的坐标,如多个第一碎片所有边角的坐标均保存在第一碎片坐标点集中。存储时,如一个第一碎片的多个边角的坐标分别为(9.5,9.3),(9.5,17.1),(18.4,9.3),(18.4,17.1),将以上坐标均存储在第一碎片坐标点集中。同时,记录这几个坐标为同一个第一碎片的坐标。存储第一碎片的多个边角的坐标方便在查找第一碎片时,可以快速的查找到第一碎片。
进一步,此处不限定步骤S305和步骤S306执行的先后顺序,两步骤可并列执行,也可先执行其中任一步骤。
步骤S307,依次从绘制点集选取一个绘制点,查找第一碎片坐标点集中坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片。
若绘制点集中仅存储一个绘制点时,从绘制点集中选取该绘制点。若绘制点集中存储了多个绘制点时,从绘制点集中选取一个绘制点。
在第一碎片坐标点集中查找坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值的坐标。如选取的绘制点的坐标为(10,10),预设阈值可以设置为如1,从第一碎片坐标点集中查找中查找与绘制点的坐标(10,10)距离小于或等于1的坐标。如第一碎片坐标点集中的坐标包括(9.5,9.3),(18.7,18.3)等,从这些坐标中找到与绘制点的坐标(10,10)的距离小于或等于1的坐标,坐标(9.5,9.3)为查找到的坐标。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。该坐标的第一碎片即要查找的第一碎片。
进一步,预设比例尺不为1:1时,查找第一碎片坐标点集中坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片。
在第一碎片坐标点集中查找坐标与之前选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的坐标。如选取的绘制点的坐标为(100,100),预设的比例尺为1:10,预设阈值可以设置为如1。在第一碎片坐标点集中查找坐标中查找与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标。如第一碎片坐标点集中的坐标包括(9.5,9.3),(18.7,18.3)等,从这些坐标中找到与绘制点的坐标按照预设比例尺计算后的坐标(10,10)的距离小于或等于1的坐标,坐标(9.5,9.3)为查找到的坐标。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。该坐标的第一碎片即要查找的第一碎片。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做限定。
步骤S308,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
步骤S309,将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中。
步骤S308和步骤S309可参考图2实施例中步骤S207和步骤S208的描述,在此不再赘述。
步骤S310,废弃第一碎片坐标点集中该第一碎片的各边角的坐标。
查找到第一碎片后,将第一碎片坐标点集中该第一碎片的所有的边角的坐标废弃,包括步骤S307中查找到的第一碎片的坐标,和该第一碎片的其他坐标。具体废弃的方式可以如在第一碎片坐标点集中删除这些坐标;或将这些坐标标记为废弃。
通过废弃第一碎片坐标点集中该第一碎片的各边角的坐标,可以减少第一碎片坐标点集中的坐标数量,提高查找第一碎片的速度。
进一步,此处不限定步骤S309和步骤S310执行的先后顺序,两步骤可并列执行,也可先执行其中任一步骤。
步骤S311,判断所存储的第二碎片是否均绘制到第二画布上。
步骤S312,绘制结束。
步骤S311和步骤S312可参考图2实施例中步骤S209和步骤S210的描述,在此不再赘述。
根据本发明提供的文件碎片合并方法,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。通过向上取整处理后得到的对应的第二碎片的尺寸和向下取整处理后得到的对应的第二画布的尺寸,使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。在通过建立绘制点集,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。进一步,根据用户需要可以预设比例尺对第一画布和第一碎片放大或缩小,进而得到对应的第二碎片进行合并,获取对应的绘制后的放大或缩小的第二画布。使用建立的第一碎片坐标点集中的坐标与选取的绘制点的坐标进行比较,并在比较后废弃第一碎片坐标点集中该第一碎片的各边角的坐标,以减少需要进行比较的第一碎片的坐标,提高整体执行的速度,方便更快的找到第一碎片。
实施例四
图4示出了根据本发明实施例四的文件碎片合并装置的功能框图,如图4所示,文件碎片合并装置包括如下模块:
碎片存储模块410,适于将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片。
第一画布中分布了多个第一碎片,由于第一碎片的尺寸可能会存在浮点型数值,但在碎片存储模块410将其存储在终端设备本地磁盘时,受到存储规则的限制,尺寸只能为整型数值。因此碎片存储模块410需要对第一碎片进行处理,将第一碎片的尺寸进行取整处理,得到对应的整型数值的尺寸。碎片存储模块410按照对应的整型数值的尺寸将多个第一碎片对应的存储为多个第二碎片。
进一步,碎片存储模块410在存储第二碎片时,同时存储了第二碎片和第一碎片的对应关系。
画布设置模块420,适于根据第一画布的尺寸,设置第二画布。
第一画布的尺寸可能会存在浮点型数值,画布设置模块420对应的设置第二画布时,需要将第一画布的尺寸进行取整处理,得到对应的整型数值的尺寸。画布设置模块420按照对应的整型数值的尺寸设置第二画布的尺寸。
进一步,此处不限定碎片存储模块410和画布设置模块420执行的先后顺序,两模块可并列执行,也可先执行其中任一模块。
绘制点集模块430,适于建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中。
绘制点集模块430建立空的绘制点集,绘制点集可以存储一个或多个的绘制点的坐标。首先绘制点集模块430将第二画布的起始绘制点的坐标保存在绘制点集中,起始绘制点的坐标可以为第二画布的左上角的坐标如(0,0);或可以为第二画布的右上角的坐标如(X,0);或可以为第二画布的坐下角的坐标如(0,Y);或可以为第二画布的右下角的坐标如(X,Y)。具体可以根据实施时的情况进行设置,此处不做限定。
绘制模块440,适于依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
若绘制点集中仅存储一个绘制点时,绘制模块440从绘制点集中选取该绘制点。若绘制点集中存储了多个绘制点时,绘制模块440从绘制点集中选取一个绘制点。
绘制模块440在多个第一碎片中查找其第一边角的坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片。如绘制模块440选取的绘制点的坐标为(10,10),预设阈值可以设置为如1,绘制模块440从多个第一碎片的第一边角的坐标中查找与绘制点的坐标(10,10)距离小于或等于1的坐标。如多个第一碎片中的一个第一碎片的第一边角的坐标为(9.5,9.3),一个第一碎片的第一边角的坐标为(18.7,18.3),一个第一碎片的第一边角的坐标为(30.1,9.3),绘制模块440从这些第一碎片的第一边角的坐标中找到与绘制点的坐标(10,10)的距离小于或等于1的坐标的第一碎片,即坐标为(9.5,9.3)的第一碎片。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合第一碎片的第一边角的坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。
其中,第一碎片的第一边角的坐标可以为第一碎片任一边角的坐标,此处不做具体限定。进一步,为提高绘制模块440查找第一碎片的速度,可以根据绘制模块440选取的绘制点的坐标与第二画布的位置关系选择合适的第一碎片的某一边角的坐标作为第一边角的坐标。如绘制模块440选取的绘制点的坐标位于第二画布的左上角位置,选择第一碎片的左上边角的坐标作为第一边角的坐标。
绘制模块440以选取的绘制点的坐标如(10,10)为起始点,将查找到的第一碎片对应的第二碎片绘制在第二画布上。即绘制模块440在第二画布的坐标为(10,10)处开始进行绘制,将查找到的第一碎片对应的第二碎片绘制在第二画布上。其中,第二碎片可以通过其与第一碎片的对应关系得到。
以上均为举例说明,具体实施时根据实际情况进行设置,此处不做限定。
更新绘制点集模块450,适于将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中。
在绘制模块440绘制完成后,更新绘制点集模块450将该绘制完成的第二碎片在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中。其中,第二碎片的第二边角和第三边角,可以选择除与第一碎片对应的第一边角外,其余边角中的两个边角。这两个边角的连线为第二碎片的对角线。
进一步,在更新绘制点集模块450将该已绘制的第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集后,还可以将选取的已使用的绘制点废弃。废弃时更新绘制点集模块450可以从绘制点集中删除该已使用的绘制点的坐标,更新绘制点集模块450也可以将该已使用的绘制点的坐标标记为废弃状态。这样使得在绘制模块440选取绘制点时,已使用的绘制点不会再次被选取到。
循环模块460,适于重复执行绘制模块440和更新绘制点集模块450,直至所存储的第二碎片均绘制到第二画布上。
循环模块460先判断所存储的第二碎片是否均已绘制到第二画布上,若还有第二碎片没有绘制到第二画布上,重复执行绘制模块440和更新绘制点集模块450,直至所存储的第二碎片均绘制到第二画布上。
进一步,在绘制模块440绘制第二碎片后,可以将存储的该第二碎片进行标记,标记该第二碎片已经绘制。在循环模块460判断所存储的第二碎片是否均绘制到第二画布上时,通过标记可以方便的找到是否还有第二碎片没有绘制到第二画布上。
若所存储的第二碎片均绘制到第二画布上,即第二画布上所有碎片均绘制完成,得到完整的画布内容,此时绘制结束。
进一步,碎片可以为图片碎片,也可为文字碎片,或文字和图片都包含的碎片。
根据本发明提供的文件碎片合并装置,将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;根据第一画布的尺寸,设置第二画布;建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片的第二边角绘制在第二画布上的坐标和第三边角的坐标保存在绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到第二画布上。将第一画布中的多个第一碎片处理后得到第二碎片,并相应的设置第二画布。通过建立绘制点集,依次从绘制点集中选取一个绘制点,与多个第一碎片中的第一边角坐标进行比较,选择坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。
实施例五
图5示出了根据本发明实施例五的文件碎片合并装置的功能框图,如图5所示,与图4相比,文件碎片合并装置还包括如下模块:
向上取整模块470,适于将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。
向上取整模块470将分布在第一画布中的多个第一碎片的尺寸向上取整得到对应的整型数值的尺寸。如一个第一碎片的尺寸为17.5x19.2,向上取整模块470将其尺寸向上取整,得到整形数值的尺寸为18x20。多个第一碎片的尺寸均一一向上取整,若第一碎片的尺寸为整型数值时,保持第一碎片的尺寸,向上取整模块470不对其进行处理。若所有第一碎片的尺寸均为整型数值时,可跳过向上取整模块470,直接执行碎片存储模块410。
碎片存储模块410进一步适于:按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸。
若用户想得到第一碎片放大或缩小后的对应的第二碎片进行合并时,碎片存储模块410可以预设比例尺。如碎片存储模块410预设的比例尺为1:10,即碎片存储模块410将原第一碎片放大至10倍,得到对应的放大至10倍的第二碎片;或碎片存储模块410预设的比例尺为2:1,即碎片存储模块410将原第一碎片缩小至原来的二分之一,得到对应的缩小至二分之一的第二碎片。若用户不想对第一碎片进行放大或缩小的改变,碎片存储模块410可以将预设的比例尺设置为1:1。
向上取整模块470在得到第一碎片对应的整型数值的尺寸后,碎片存储模块410根据预设的比例尺进行处理,得到对应的第二碎片的尺寸。如第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为1:10,碎片存储模块410得到对应的第二碎片的尺寸为180x200;或第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为2:1,碎片存储模块410得到对应的第二碎片的尺寸为9x10;或第一碎片对应的整型数值的尺寸为18x20,预设的比例尺为1:1,碎片存储模块410得到对应的第二碎片的尺寸为18x20。碎片存储模块410将对应的第一碎片按照该处理得到的对应的尺寸存储为第二碎片。碎片存储模块410得到将第二碎片存储在本地磁盘的预设位置中,存储时还同时记录第二碎片与第一碎片的对应的标识。如碎片存储模块410存储时,可设置配置文件,记录第二碎片名称与第一碎片名称一一对应的关系;或将第二碎片的名称存储为预设前缀或预设后缀+第一碎片的名称等。具体的实现方式可根据实际情况进行设置,此处不做限定。
向下取整模块480,适于将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。
向下取整模块480将第一画布的尺寸向下取整得到对应的整型数值的尺寸。如第一画布的尺寸为200.5x180.2,向下取整模块480将其尺寸向上取整,得到整形数值的尺寸为200x180。若第一画布的尺寸为整型数值时,可跳过向下取整模块480,直接执行画布设置模块420。
画布设置模块420进一步适于:按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。
其中,预设的比例尺为第二碎片和第二画布共用的比例尺。在向下取整模块480得到第一画布对应的整型数值的尺寸后,画布设置模块420根据预设的比例尺进行处理,得到对应的第二画布的尺寸。如第一画布对应的整型数值的尺寸为200x180,预设的比例尺为1:10,画布设置模块420得到对应的第二画布的尺寸为2000x1800;或第一画布对应的整型数值的尺寸为200x180,预设的比例尺为2:1,画布设置模块420得到对应的第二画布的尺寸为100x90;或第一画布对应的整型数值的尺寸为200x180,预设的比例尺为1:1,画布设置模块420得到对应的第二画布的尺寸为200x180。
进一步,向上取整模块470和碎片存储模块410为先后执行的步骤,向下取整模块480和画布设置模块420为先后执行的步骤。但此处不限定向上取整模块470、碎片存储模块410与向下取整模块480、画布设置模块420执行的先后顺序。向上取整模块470和碎片存储模块410执行过程中,可以并列执行向下取整模块480和画布设置模块420,也可以先执行向上取整模块470和碎片存储模块410,后执行向下取整模块480和画布设置模块420,或先执行向下取整模块480和画布设置模块420,后执行向上取整模块470和碎片存储模块410。
通过执行以上各模块,得到向上取整处理后的对应的第二碎片的尺寸和向下取整处理后的对应的第二画布的尺寸。这样处理使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。
绘制模块440进一步适于:依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片
其中,预设比例尺为向上取整模块470和向下取整模块480中的同一预设的比例尺。
绘制模块440在多个第一碎片中查找其第一边角的坐标与之前选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片。如绘制模块440选取的绘制点的坐标为(100,100),预设的比例尺为1:10,预设阈值可以设置为如1。绘制模块440在多个第一碎片的第一边角的坐标中查找与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标。如多个第一碎片中的一个第一碎片的第一边角的坐标为(9.5,9.3),一个第一碎片的第一边角的坐标为(18.7,18.3),一个第一碎片的第一边角的坐标为(30.1,9.3),绘制模块440从这些第一碎片的第一边角的坐标中找到与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标的第一碎片,即坐标为(9.5,9.3)的第一碎片。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合第一碎片的第一边角的坐标与之前选取的绘制点的坐标按照预设比例尺计算后得到的坐标之间的距离小于或等于预设阈值。
第一碎片坐标点集模块490,适于建立第一碎片坐标点集,将多个第一碎片的坐标保存在第一碎片坐标点集中。
第一碎片坐标点集模块490建立第一碎片坐标点集,将多个第一碎片的坐标,如第一碎片坐标点集模块490将多个第一碎片所有边角的坐标均保存在第一碎片坐标点集中。第一碎片坐标点集模块490存储时,如一个第一碎片的多个边角的坐标分别为(9.5,9.3),(9.5,17.1),(18.4,9.3),(18.4,17.1),第一碎片坐标点集模块490将以上坐标均存储在第一碎片坐标点集中。同时,第一碎片坐标点集模块490记录这几个坐标为同一个第一碎片的坐标。第一碎片坐标点集模块490存储第一碎片的多个边角的坐标方便在查找第一碎片时,可以快速的查找到第一碎片。
绘制模块440进一步适于:将第一碎片坐标点集中的一个坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片。
绘制模块440在第一碎片坐标点集中查找坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值的坐标。如绘制模块440选取的绘制点的坐标为(10,10),预设阈值可以设置为如1,绘制模块440从第一碎片坐标点集中查找中查找与绘制点的坐标(10,10)距离小于或等于1的坐标。如第一碎片坐标点集中的坐标包括(9.5,9.3),(18.7,18.3)等,绘制模块440从这些坐标中找到与绘制点的坐标(10,10)的距离小于或等于1的坐标,坐标(9.5,9.3)为查找到的坐标。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。该坐标的第一碎片即要查找的第一碎片。
进一步,预设比例尺不为1:1时,绘制模块440进一步适于:依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标按照预设比例尺计算后的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片。
绘制模块440在第一碎片坐标点集中查找坐标与之前选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的坐标。如绘制模块440选取的绘制点的坐标为(100,100),预设的比例尺为1:10,预设阈值可以设置为如1。绘制模块440在第一碎片坐标点集中查找坐标中查找与绘制点的坐标(100,100)按照预设比例尺计算后得到的坐标(10,10)的距离小于或等于1的坐标。如第一碎片坐标点集中的坐标包括(9.5,9.3),(18.7,18.3)等,绘制模块440从这些坐标中找到与绘制点的坐标按照预设比例尺计算后的坐标(10,10)的距离小于或等于1的坐标,坐标(9.5,9.3)为查找到的坐标。其中,9.5与10的距离小于1,9.3与10的距离小于1,符合坐标与之前选取的绘制点的坐标之间的距离小于或等于预设阈值。该坐标的第一碎片即要查找的第一碎片。
绘制模块440以选取的绘制点的坐标如(10,10)为起始点,将查找到的第一碎片对应的第二碎片绘制在第二画布上。即绘制模块440在第二画布的坐标为(10,10)处开始进行绘制,将查找到的第一碎片对应的第二碎片绘制在第二画布上。其中,第二碎片可以通过其与第一碎片的对应关系得到。
第一碎片坐标点集模块490进一步适于:废弃第一碎片坐标点集中第一碎片的各边角的坐标。
绘制模块440查找到第一碎片后,第一碎片坐标点集模块490将第一碎片坐标点集中该第一碎片的所有的边角的坐标废弃,包括绘制模块440查找到的第一碎片的坐标,和该第一碎片的其他坐标。具体废弃的方式可以如第一碎片坐标点集模块490在第一碎片坐标点集中删除这些坐标;或第一碎片坐标点集模块490将这些坐标标记为废弃。
通过第一碎片坐标点集模块490废弃第一碎片坐标点集中该第一碎片的各边角的坐标,可以减少第一碎片坐标点集中的坐标数量,以便提高绘制模块440查找第一碎片的速度。
根据本发明提供的文件碎片合并装置,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。通过向上取整处理后得到的对应的第二碎片的尺寸和向下取整处理后得到的对应的第二画布的尺寸,使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。在通过建立绘制点集,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。进一步,根据用户需要可以预设比例尺对第一画布和第一碎片放大或缩小,进而得到对应的第二碎片进行合并,获取对应的绘制后的放大或缩小的第二画布。使用建立的第一碎片坐标点集中的坐标与选取的绘制点的坐标进行比较,并在比较后废弃第一碎片坐标点集中该第一碎片的各边角的坐标,以减少需要进行比较的第一碎片的坐标,提高整体执行的速度,方便更快的找到第一碎片。
实施例六
本申请实施例六提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的文件碎片合并方法。
实施例七
图6示出了根据本发明实施例七的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图6所示,该电子设备可以包括:处理器(processor)602、通信接口(Communications Interface)604、存储器(memory)606、以及通信总线608。
其中:
处理器602、通信接口604、以及存储器606通过通信总线608完成相互间的通信。
通信接口604,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器602,用于执行程序610,具体可以执行上述文件碎片合并方法实施例中的相关步骤。
具体地,程序610可以包括程序代码,该程序代码包括计算机操作指令。
处理器602可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器606,用于存放第一数据集合、第二数据集合以及程序610。存储器606可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序610具体可以用于使得处理器602执行以下操作:将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储多个第二碎片;根据第一画布的尺寸,设置第二画布;建立绘制点集,将第二画布的起始绘制点的坐标保存在绘制点集中;依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到第二画布上。
在一种可选的实施方式中,第二碎片的第二边角和第三边角的连线为第二碎片的对角线。
在一种可选的实施方式中,程序610用于使得处理器602将已绘制的第二碎片的第二边角的坐标和第三边角的坐标保存在绘制点集中,并废弃已使用的绘制点。
在一种可选的实施方式中,程序610用于使得处理器602将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸;按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸;将第一碎片相应的存储为第二碎片;其中,第二碎片存储在本地磁盘的预设位置,存储时记录第二碎片与第一碎片的对应的标识。
在一种可选的实施方式中,程序610用于使得处理器602将第一画布的尺寸向下取整,得到对应的整型数值的尺寸;按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。
在一种可选的实施方式中,程序610用于使得处理器602依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
在一种可选的实施方式中,程序610用于使得处理器602建立第一碎片坐标点集,将多个第一碎片的坐标保存在第一碎片坐标点集中。依次从绘制点集选取一个绘制点,查找第一碎片坐标点集中坐标与选取的绘制点的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片;废弃第一碎片坐标点集中该第一碎片的各边角的坐标。
在一种可选的实施方式中,程序610用于使得处理器602依次从绘制点集选取一个绘制点,查找第一碎片坐标点集中坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
在一种可选的实施方式中,碎片为图片和/或文字。
程序610中各步骤的具体实现可以参见上述文件碎片合并实施例中的相应步骤和单元中对应的描述,在此不赘述。所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的设备和模块的具体工作过程,可以参考前述方法实施例中的对应过程描述,在此不再赘述。
通过本实施例提供的方案,将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸,将第一碎片相应的存储为第二碎片。将第一画布的尺寸向下取整,得到对应的整型数值的尺寸。按照整型数值的尺寸和预设的比例尺,设置第二画布的尺寸。通过向上取整处理后得到的对应的第二碎片的尺寸和向下取整处理后得到的对应的第二画布的尺寸,使得第二碎片的尺寸略微变大,而第二画布的尺寸略微变小,使得在将第二碎片绘制到第二画布上时,保证了第二画布被充满,第二画布的边缘部分不会留下空隙。在通过建立绘制点集,依次从绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,将与其对应的第二碎片以所选取的绘制点为起始点绘制在第二画布中。绘制完成后,将绘制在第二画布上的第二碎片的坐标保存在绘制点集中。使用新选取的绘制点继续选择第一碎片对应的第二碎片,将第二碎片以所选取的绘制点为起始点绘制在第二画布中。重复执行直至所有第二碎片均绘制在第二画布上,从而得到完整的画布内容。同时,由于绘制点集中保存的为第二碎片绘制在第二画布后的边角的坐标,在将第二碎片以绘制点为起始点绘制在第二画布上,使得多个第二碎片在绘制时,彼此间相邻从而彼此间不会出现空隙,解决了多个碎片重新绘制在画布时出现的空隙问题。进一步,根据用户需要可以预设比例尺对第一画布和第一碎片放大或缩小,进而得到对应的第二碎片进行合并,获取对应的绘制后的放大或缩小的第二画布。使用建立的第一碎片坐标点集中的坐标与选取的绘制点的坐标进行比较,并在比较后废弃第一碎片坐标点集中该第一碎片的各边角的坐标,以减少需要进行比较的第一碎片的坐标,提高整体执行的速度,方便更快的找到第一碎片。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的文件碎片合并装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1、一种文件碎片合并方法,其包括:
将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储所述多个第二碎片;
根据第一画布的尺寸,设置第二画布;
建立绘制点集,将所述第二画布的起始绘制点的坐标保存在所述绘制点集中;
依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片,而后将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在所述绘制点集中;重复执行本步骤,直至所存储的第二碎片均绘制到所述第二画布上。
A2、根据权利要求A1所述的方法,其中,所述第二碎片的第二边角和第三边角的连线为第二碎片的对角线。
A3、根据权利要求A1所述的方法,其中,所述将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在所述绘制点集中进一步包括:
将所述已绘制的第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在所述绘制点集中,并废弃已使用的绘制点。
A4、根据权利要求A1所述的方法,其中,所述将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储所述多个第二碎片进一步包括:
将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸;
按照所述整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸;将所述第一碎片相应的存储为第二碎片;其中,所述第二碎片存储在本地磁盘的预设位置,存储时记录所述第二碎片与第一碎片的对应的标识。
A5、根据权利要求A1所述的方法,其中,所述根据第一画布的尺寸,设置第二画布进一步包括:
将所述第一画布的尺寸向下取整,得到对应的整型数值的尺寸;
按照所述整型数值的尺寸和预设的比例尺,设置所述第二画布的尺寸。
A6、根据权利要求A1-A5任一项所述的方法,其中,所述依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片进一步包括:
依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
A7、根据权利要求A1所述的方法,其中,所述方法还包括:
建立第一碎片坐标点集,将多个所述第一碎片的坐标保存在所述第一碎片坐标点集中;
所述依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片进一步包括:
依次从绘制点集选取一个绘制点,查找所述第一碎片坐标点集中坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片;
废弃所述第一碎片坐标点集中该第一碎片的各边角的坐标。
A8、根据权利要求A7所述的方法,其中,依次从绘制点集选取一个绘制点,查找所述第一碎片坐标点集中坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片进一步包括:
依次从所述绘制点集选取一个绘制点,查找第一碎片坐标点集中坐标与所述选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
A9、根据权利要求A1-A8任一项所述的方法,其中,所述碎片为图片和/或文字。
本发明还公开了:B10、一种文件碎片合并装置,其包括:
碎片存储模块,适于将分布在第一画布中的多个第一碎片分别进行处理得到多个第二碎片,存储所述多个第二碎片;
画布设置模块,适于根据第一画布的尺寸,设置第二画布;
绘制点集模块,适于建立绘制点集,将所述第二画布的起始绘制点的坐标保存在所述绘制点集中;
绘制模块,适于依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片;
更新绘制点集模块,适于将该第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在所述绘制点集中;
循环模块,适于重复执行所述绘制模块和所述更新绘制点集模块,直至所存储的第二碎片均绘制到所述第二画布上。
B11、根据权利要求B10所述的装置,其中,所述第二碎片的第二边角和第三边角的连线为第二碎片的对角线。
B12、根据权利要求B10所述的装置,其中,所述更新绘制点集模块进一步适于:
将所述已绘制的第二碎片绘制在第二画布上的第二边角的坐标和第三边角的坐标保存在所述绘制点集中,并废弃已使用的绘制点。
B13、根据权利要求B10所述的装置,其中,所述碎片存储模块进一步包括:
向上取整模块,适于将分布在第一画布中的多个第一碎片的尺寸以向上取整的方式进行处理,得到对应的整型数值的尺寸;
所述碎片存储模块进一步适于:按照所述整型数值的尺寸和预设的比例尺进行处理,得到多个第二碎片的尺寸;将所述第一碎片相应的存储为第二碎片;其中,所述第二碎片存储在本地磁盘的预设位置,存储时记录所述第二碎片与第一碎片的对应的标识。
B14、根据权利要求B10所述的装置,其中,所述画布设置模块进一步包括:
向下取整模块,适于将所述第一画布的尺寸向下取整,得到对应的整型数值的尺寸;
所述画布设置模块进一步适于:按照所述整型数值的尺寸和预设的比例尺,设置所述第二画布的尺寸。
B15、根据权利要求B10-B14任一项所述的装置,其中,所述绘制模块进一步适于:
依次从所述绘制点集选取一个绘制点,在多个第一碎片中查找第一边角的坐标与所述选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
B16、根据权利要求B10所述的装置,其中,所述装置还包括:
第一碎片坐标点集模块,适于建立第一碎片坐标点集,将多个所述第一碎片的坐标保存在所述第一碎片坐标点集中;
所述绘制模块进一步适于:
依次从绘制点集选取一个绘制点,查找所述第一碎片坐标点集中坐标与所述选取的绘制点的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片;
第一碎片坐标点集模块进一步适于:废弃所述第一碎片坐标点集中该第一碎片的各边角的坐标。
B17、根据权利要求B16所述的装置,其中,所述绘制模块进一步适于:
依次从所述绘制点集选取一个绘制点,查找第一碎片坐标点集中坐标与所述选取的绘制点的坐标按照预设比例尺计算后的坐标之间的距离小于或等于预设阈值的该坐标的第一碎片,以所选取的绘制点为起始点在第二画布上绘制与查找到的第一碎片对应的第二碎片。
B18、根据权利要求B10-B17任一项所述的装置,其中,所述碎片为图片和/或文字。
本发明还公开了:C19、一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求A1-A9中任一项所述的文件碎片合并方法对应的操作。
本发明还公开了:D20、一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使所述处理器执行如权利要求A1-A9中任一项所述的文件碎片合并方法对应的操作。