本申请涉及计算机应用技术,更具体地说,涉及一种图片合成方法、系统及存储介质。
背景技术:
现今各类电子设备普遍具有拍照功能,随着各类拍照应用的出现,在拍照取景的截面上设置背景素材,然后进行拍摄以实现实物景物和背景素材拍摄为一张图像的各类应用也不断涌现。在这些应用中,通常需要用户在拍摄景物之前,选取背景素材,选取的背景素材嵌套在应用的界面上,然后对景物进行取景拍摄后,景物和背景素材即可在拍摄完成后形成为一张图片。
在这种将拍摄景物和背景素材拍摄成为一张图片的过程中,背景素材需要在用户选择作为背景的过程中进行加载,以使背景素材可以嵌套在应用的界面上,而为了使得背景素材的加载时间较短,避免过长的加载时间对用户的拍照体验产生不良影响,这就将背景素材限制在一些图案简单且分辨率较低的图像当中,从而难以满足用户在图片合成过程中,对于图案复杂且分辨率较高的图像作为背景素材的要求。
技术实现要素:
为解决上述技术问题,本申请提供了一种图片合成方法、系统及存储介质,以实现提供一种无需在拍摄过程中加载背景素材的图片合成方法,解决了由于为了使得背景素材的加载时间较短,而将背景素材限制在一些图案简单且分辨率较低的图像中的问题。
为实现上述技术目的,本申请实施例提供了如下技术方案:
一种图片合成方法,包括:
获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
可选的,所述根据所述用户图片和素材图片的分辨率大小,确定绘制顺序包括:
按照所述用户图片和素材图片的分辨率由大到小的顺序,确定绘制顺序。
可选的,所述判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值包括:
判断所述用户图片与所述素材图片的分辨率是否相等,如果是,则进入根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片的步骤;
如果否,则对所述用户图片与所述素材图片中分辨率较大的图片进行分辨率调整,以使所述用户图片与所述素材图片的分辨率相等,并进入根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片的步骤。
可选的,所述根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片包括:
建立空白位图图像;
按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片。
可选的,所述按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片包括:
按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片逐像素渲染在所述空白位图图像中,以获得合成图片。
一种图片合成系统,包括:
图片获取模块,用于获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
素材确定模块,用于根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
顺序确定模块,用于根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
像素调整模块,用于判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
图片渲染模块,用于根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
可选的,所述顺序确定模块具体用于,按照所述用户图片和素材图片的分辨率由大到小的顺序,确定绘制顺序。
可选的,所述像素调整模块具体用于,判断所述用户图片与所述素材图片的分辨率是否相等,如果是,则触发所述图片渲染模块根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片;
如果否,则对所述用户图片与所述素材图片中分辨率较大的图片进行分辨率调整,以使所述用户图片与所述素材图片的分辨率相等,并触发所述图片渲染模块根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
可选的,所述图片渲染模块包括:
位图建立单元,用于建立空白位图图像;
像素渲染单元,用于按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片。
可选的,所述像素渲染单元具体用于,按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片逐像素渲染在所述空白位图图像中,以获得合成图片。
一种存储介质,所述存储介质上存储有程序代码,所述程序代码被执行时实现上述任一项所述的图片合成方法。
从上述技术方案可以看出,本申请实施例提供了一种图片合成方法、系统及存储介质,其中,所述图片合成方法将图片合成过程与用户图片的拍摄过程分离,通过获取的用户图片和根据素材选取指令确定的素材图片经过绘制顺序的确定、分辨率调整和重新绘制的过程实现了图片的合成,避免了由于较大的背景素材的加载过程对图片拍摄过程产生的不良影像;并且所述图片合成方法在对用户图片和素材图片进行绘制以获得合成图片之前,将用户图片和素材图片的分辨率的差值限定在预设阈值以内,以避免获得的合成图片在打印出来后出现的图像畸变的问题。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请的一个实施例提供的一种图片合成方法的流程示意图;
图2为本申请的一个实施例提供的一种素材库中的素材图片的展示方式示意图;
图3为本申请的另一个实施例提供的一种图片合成方法的流程示意图;
图4为本申请的又一个实施例提供的一种图片合成方法的流程示意图;
图5为本申请的再一个实施例提供的一种图片合成方法的流程示意图;
图6为本申请的一个优选实施例提供的一种图片合成方法的流程示意图;
图7为本申请的一个实施例提供的一种图片合成系统的结构示意图;
图8为本申请的另一个实施例提供的一种图片合成系统的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供了一种图片合成方法,如图1所示,包括:
S101:获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
S102:根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
S103:根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
S104:判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
S105:根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
在本实施例中,所述用户图片指用户通过上传或贴附链接等方式获取的图片,用于与通过素材选取指令确定的素材图片进行图片合成;
所述素材选取指令可以是用户发送的语音指令,也可以是用户通过触控屏幕或实体按键触发的电信号指令,例如,当用户的输入设备为触控屏幕时,参考图2,图2中的标号10表示所述素材库中的素材图片,所述素材库中的素材图片以平铺的方式展示在触控屏幕上,用户通过在触控屏幕上不同位置的触摸实现素材选取指令的发送,而用户的不同触摸位置为所述素材选取指令中的素材标识。本申请对所述素材选取指令的具体触发方式并不做限定,具体视实际情况而定。
所述图片合成方法将图片合成过程与用户图片的拍摄过程分离,通过获取的用户图片和根据素材选取指令确定的素材图片经过绘制顺序的确定、分辨率调整和重新绘制的过程实现了图片的合成,避免了由于较大的背景素材的加载过程对图片拍摄过程产生的不良影像;并且所述图片合成方法在对用户图片和素材图片进行绘制以获得合成图片之前,将用户图片和素材图片的分辨率的差值限定在预设阈值以内,以避免获得的合成图片在打印出来后出现的图像畸变的问题。
需要说明的是,当所述用户图片和素材图片的分辨率存在超过预设阈值的误差时,如果不对用户图片或素材图片的分辨率进行调整,直接根据绘制顺序进行用户图片和素材图片的绘制,获得合成图片,虽然合成图片在应用中的显示不存在畸变,但有较大的概率在合成图片打印出来后,由于用户图片和素材图片的分辨率误差较大而出现畸变,因此,在本实施例中,需要在对用户图片与素材图片进行重新绘制合成之前进行图片分辨率的判断和调整。
在上述实施例的基础上,在本申请的一个实施例中,如图3所示,所述图片合成方法包括:
S201:获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
S202:根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
S203:按照所述用户图片和素材图片的分辨率由大到小的顺序,确定绘制顺序;
S204:判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
S205:根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
在本实施例中,对根据用户图片和素材图片的分辨率大小,确定绘制顺序的具体方式进行限定,具体地,假设用户图片为图片A,其分辨率为2560像素×1440像素,素材图片为图片B,其2560像素×1080像素;那么,绘制顺序即为图片A、图片B;而假如用户图片为图片A,其分辨率为1080像素×800像素,素材图片为图片B,其2560像素×1080像素;那么,绘制顺序即为图片B、图片A。
在上述实施例的基础上,在本申请的另一个实施例中,如图4所示,所述图片合成方法包括:
S301:获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
S302:根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
S303:根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
S304:判断所述用户图片与所述素材图片的分辨率是否相等,如果是,则进入根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片的步骤;
如果否,则对所述用户图片与所述素材图片中分辨率较大的图片进行分辨率调整,以使所述用户图片与所述素材图片的分辨率相等,并进入根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片的步骤;
S305:根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
在本实施例中,所述预设阈值的取值为零,即在等所述用户图片和素材图片的分辨率完全一致时,才进行后续的根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片的步骤,以确保所述图片合成方法适用于所有的电子设备或应用环境。
另外,在步骤S304中,当所述用户图片与所述素材图片的分辨率不一致时,优选对所述用户图片与所述素材图片中分辨率较大的图片进行分辨率调整,仍然假设假如用户图片为图片A,其分辨率为1080像素×800像素,素材图片为图片B,其2560像素×1080像素,那么优选对图片B的分辨率进行调整,以将图片B的分辨率调整为1080像素×800像素;如果在这种情况下将图片A的分辨率调整为2560像素×1080像素,就可能出现调整后的图片A的图像模糊等情况,不利于后续的图片合成步骤。
在上述实施例的基础上,在本申请的又一个实施例中,如图5所示,所述图片合成方法包括:
S401:获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
S402:根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
S403:根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
S404:判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
S405:建立空白位图图像;
S406:按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片。
本实施例提供了一种具体地根据绘制顺序绘制用户图片和素材图片的过程,位图(Bitmap)图像又称为点阵图像或绘制图像,是由称作像素(Pixel)的单个点构成的图像。位图图像的绘制过程较为简便,并且可以表现出色彩丰富的图像和图像效果,还可以逼真地表现出自然界各类景物,因此在本实施例中,通过建立空白位图图像,并将用户图片与素材图片重新绘制在空白位图图像中的方式实现合成图片的获得。
在上述实施例的基础上,在本申请的再一个实施例中,如图6所示,所述图片合成方法包括:
S501:获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
S502:根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
S503:根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
S504:判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
S505:建立空白位图图像;
S506:按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片逐像素渲染在所述空白位图图像中,以获得合成图片。
在本实施例中,步骤S507限定了一种具体地按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片的方式,在本申请的一个实施例中,将用户图片和素材图片逐像素渲染的过程可以依靠Canvas实现。
相应的,本申请实施例还提供了一种存储介质,所述存储介质上存储有程序代码,所述程序代码被执行时实现上述任一实施例所述的图片合成方法。
下面对本申请实施例提供的图片合成系统进行描述,下文描述的图片合成系统与上文描述的图片合成方法可相互对应参照。
相应的,本申请实施例还提供了一种图片合成系统,如图7所示,所述图片合成系统包括:
图片获取模块100,用于获取用户图片和素材选取指令,所述素材选取指令中具有素材标识;
素材确定模块200,用于根据所述素材选取指令在素材库中确定素材图片,所述素材库中存储有与所述素材标识对应的素材图片;
顺序确定模块300,用于根据所述用户图片和素材图片的分辨率大小,确定绘制顺序;
像素调整模块400,用于判断所述用户图片与所述素材图片的分辨率的差值是否小于或等于预设阈值,如果否,则对所述用户图片和/或所述素材图片的分辨率进行调整,以使所述用户图片与所述素材图片的分辨率的差值小于或等于所述预设阈值;
图片渲染模块500,用于根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
可选的,所述顺序确定模块300具体用于,按照所述用户图片和素材图片的分辨率由大到小的顺序,确定绘制顺序。
可选的,所述像素调整模块400具体用于,判断所述用户图片与所述素材图片的分辨率是否相等,如果是,则触发所述图片渲染模块根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片;
如果否,则对所述用户图片与所述素材图片中分辨率较大的图片进行分辨率调整,以使所述用户图片与所述素材图片的分辨率相等,并触发所述图片渲染模块根据所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在同一个空白图片中,以获得合成图片。
可选的,如图8所示,所述图片渲染模块500包括:
位图建立单元510,用于建立空白位图图像;
像素渲染单元520,用于按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片绘制在所述空白位图图像中,以获得合成图片。
可选的,所述像素渲染单元520具体用于,按照所述绘制顺序,依次将分辨率差值小于或等于预设阈值的用户图片与素材图片逐像素渲染在所述空白位图图像中,以获得合成图片。
综上所述,本申请实施例提供了一种图片合成方法、系统及存储介质,其中,所述图片合成方法将图片合成过程与用户图片的拍摄过程分离,通过获取的用户图片和根据素材选取指令确定的素材图片经过绘制顺序的确定、分辨率调整和重新绘制的过程实现了图片的合成,避免了由于较大的背景素材的加载过程对图片拍摄过程产生的不良影像;并且所述图片合成方法在对用户图片和素材图片进行绘制以获得合成图片之前,将用户图片和素材图片的分辨率的差值限定在预设阈值以内,以避免获得的合成图片在打印出来后出现的图像畸变的问题。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。