CN103390012B - 一种基于访问的展示图片生成方法和装置 - Google Patents

一种基于访问的展示图片生成方法和装置 Download PDF

Info

Publication number
CN103390012B
CN103390012B CN201210340244.5A CN201210340244A CN103390012B CN 103390012 B CN103390012 B CN 103390012B CN 201210340244 A CN201210340244 A CN 201210340244A CN 103390012 B CN103390012 B CN 103390012B
Authority
CN
China
Prior art keywords
original image
url
exhibiting pictures
picture
watermark
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
Application number
CN201210340244.5A
Other languages
English (en)
Other versions
CN103390012A (zh
Inventor
李添翼
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Baidu Netcom Science and Technology Co Ltd
Original Assignee
Beijing Baidu Netcom Science and Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Baidu Netcom Science and Technology Co Ltd filed Critical Beijing Baidu Netcom Science and Technology Co Ltd
Priority to CN201210340244.5A priority Critical patent/CN103390012B/zh
Publication of CN103390012A publication Critical patent/CN103390012A/zh
Application granted granted Critical
Publication of CN103390012B publication Critical patent/CN103390012B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提供了一种基于访问的展示图片生成方法和装置,其中方法包括:S1、判断展示图片存储引擎中是否存在接收到的展示图片访问请求的URL对应的展示图片,如果是,返回所述URL对应的展示图片;否则执行S2;S2、解析所述URL获取原始图片ID和展示参数,所述展示参数包括水印参数、缩放参数和压缩参数中的至少一种;S3、从原始图片存储引擎获取原始图片ID对应的原始图片,依据展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片;S4、将所述URL对应生成的展示图片存至所述展示图片存储引擎中,并返回所述生成的展示图片。通过本发明能够减少图片上传时间,节约存储空间以及使图片访问更加灵活。

Description

一种基于访问的展示图片生成方法和装置
【技术领域】
本发明涉及计算机应用技术领域,特别涉及一种基于访问的展示图片生成方法和装置。
【背景技术】
为了满足对图片的不同展示需求,例如在社区应用中各种尺寸图片、打水印图片的展示需求或者用户终端应用程序对缩略图的展示需求等等,常常需要基于原始图片生成缩略图、压缩图或者打水印图,以供满足不同的图片访问需求。
现有实现方式中,除了将原始图片上传至图片服务器的存储系统之外,还需要预先生成缩略图、压缩图或者打水印图,在本发明中将这些图片成为展示图片,将生成的展示图片也上传至存储系统。待图片服务器接收到图片访问请求后,直接将存储系统中对应的展示图片进行返回。然而,该实现方式具备以下缺点:
1)图片上传时间较长。除了原始图片的上传之外,还需要额外进行动态缩放、压缩或者打水印等操作以生成展示图片并上传展示图片。以爱乐活社区为例,对于同一张图片生成的展示图片可能存在二十种之多,需要耗时1到2s,再加上图片上传的耗时,这种等待是不可接受的。
2)浪费存储空间。由于展示图片是预先生成的,为了满足各种图片尺寸以及不同水印的需求,需预先生成多种展示图片放在存储系统中,但事实上并非每一种展示图片都能够被访问到,无形之中浪费了宝贵的存储空间。同样以爱乐活社区为例,如果一张图片比较火,可能被展示在各种地方,那么其对应的二十多种展示图片可能都需要,但如果一张图片受欢迎程度一般,那么其可能仅由几种展示图片被访问,那么对应的其他十几种展示图片则浪费了存储空间。
3)访问需求不灵活。假设已经预先生成并上传了二十多种展示图片,如果有额外类型展示图片的访问需求,例如需要一种新尺寸的缩略图,则当前存储系统中则无法获取到对应的展示图片,此时对所有的原始图片生成这种新的展示图片,然后上传新的展示图片至图片服务器的存储系统。
【发明内容】
本发明提供了一种基于访问的展示图片生成方法和装置,以便于减少图片上传时间,节约存储空间以及使图片访问更加灵活。
具体技术方案如下:
S1、判断展示图片存储引擎中是否存在接收到的展示图片访问请求的URL对应的展示图片,如果是,返回所述URL对应的展示图片;否则执行步骤S2;
S2、解析所述URL获取原始图片ID和展示参数,所述展示参数包括水印参数、缩放参数和压缩参数中的至少一种;
S3、从原始图片存储引擎获取原始图片ID对应的原始图片,依据所述展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片;
S4、将所述URL对应生成的展示图片存至所述展示图片存储引擎中,并返回所述生成的展示图片。
根据本发明一优选实施例,在所述步骤S1之前还包括:
S01、接收图片访问请求的URL;
S02、如果所述URL是展示图片访问请求的URL,则继续执行所述步骤S1,如果是原始图片访问请求的URL,则执行步骤S03;
S03、解析所述URL获取原始图片ID,返回原始图片存储引擎中所述原始图片ID对应的原始图片。
根据本发明一优选实施例,在返回原始图片存储引擎中所述原始图片ID对应的原始图片之前还包括:
判断原始图片存储引擎中是否查找到所述原始图片ID对应的原始图片,如果是,继续执行所述返回原始图片存储引擎中所述原始图片ID对应的原始图片,结束流程;否则,返回要访问的图片不存在的提示,结束流程。
根据本发明一优选实施例,在所述步骤S02之前还包括:
判断所述URL是否符合预设的格式要求,如果是,继续执行所述步骤S02,否则返回要访问的图片不存在的提示,结束流程。
根据本发明一优选实施例,在所述步骤S02中如果所述URL中仅携带原始图片ID,则确定所述URL为原始图片访问请求的URL;如果所述URL中不仅携带原始图片ID还携带展示参数,则确定所述URL为展示图片访问请求的URL。
根据本发明一优选实施例,在步骤S2中解析所述URL获取原始图片ID和展示参数时,判断所述URL是否进行了加密,如果是,则对所述URL进行解密得到所述原始图片ID和展示参数;如果解密失败,则确定所述URL为伪造的请求。
根据本发明一优选实施例,对所述URL进行解密得到所述原始图片ID和展示参数具体包括:
如果所述URL中包含的水印图片ID字段为空,则对原始图片ID的密文进行解密得到原始图片ID的明文;
如果所述URL中包含的水印图片ID字段不为空,则对水印图片ID的密文进行解密得到水印图片ID的明文,将水印图片ID的明文和URL中包含的其他展示参数一起作为密钥对原始图片ID的密文进行解密,得到原始图片ID的明文。
根据本发明一优选实施例,在所述步骤S3之前还包括:
判断解析得到的展示参数是否在白名单规定的可使用展示参数范围内,如果是,继续执行所述步骤S3;否则,确定所述URL为恶意攻击,结束流程。
根据本发明一优选实施例,该方法还包括:
接收到上传的原始图片时,针对该上传的原始图片生成原始图片ID,判断原始图片存储引擎中是否已经存在该原始图片ID,如果是,则不存储该上传的原始图片;否则,将该上传的原始图片以及原始图片ID存储在所述原始图片存储引擎中。
根据本发明一优选实施例,所述针对该上传的原始图片生成原始图片ID具体包括:
对原始图片进行信息摘要算法MD5,得到一个128位的串;
将所述128位的串切分为两个64位的串str1和str2;
将str1和str2做异或处理,得到串str3;
将str3的结果去掉首位,得到63位的正整数作为原始图片ID。
一种基于访问的展示图片生成装置,该装置包括:
展示图片判断单元,用于判断展示图片存储引擎中是否存在交互单元接收到的展示图片访问请求的URL对应的展示图片,如果是,将所述URL对应的展示图片发送给交互单元,否则触发参数解析单元;
参数解析单元,用于受到所述展示图片判断单元的触发后,解析所述URL获取原始图片ID和展示参数,所述展示参数包括水印参数、缩放参数和压缩参数中的至少一种;
图片生成单元,用于从原始图片存储引擎获取所述原始图片ID对应的原始图片,依据所述展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片;
图片保存单元,用于将所述URL对应生成的展示图片存至所述展示图片存储引擎;
交互单元,用于接收展示图片请求的URL,返回所述展示图片判断单元发送的展示图片,返回所述图片生成单元生成的展示图片。
根据本发明一优选实施例,该装置还包括:请求判断单元;
所述交互单元接收到图片访问请求的URL后,将所述URL提供给所述请求判断单元;
所述请求判断单元,用于判断出所述URL是展示图片访问请求的URL时,将所述URL发送给所述展示图片判断单元;判断出所述URL是原始图片访问请求的URL时,触发所述参数解析单元;
所述参数解析单元,还用于受到所述请求判断单元的触发后,解析所述URL获取原始图片ID,将原始图片存储引擎中所述原始图片ID对应的原始图片发送给所述交互单元;
所述交互单元,还用于返回所述原始图片ID对应的原始图片。
根据本发明一优选实施例,所述参数解析单元,还用于判断原始图片存储引擎中是否查找到所述原始图片ID对应的原始图片,如果是,将所述原始图片ID对应的原始图片发送给所述交互单元;否则,触发所述交互单元返回要访问的图片不存在的提示。
根据本发明一优选实施例,所述交互单元在接收到图片访问请求的URL后,还用于判断所述URL是否符合预设的格式要求,如果是,将所述URL提供给所述请求判断单元;否则返回要访问的图片不存在的提示。
根据本发明一优选实施例,如果所述URL中仅携带原始图片ID,则所述请求判断单元确定所述URL为原始图片访问请求的URL;如果所述URL中不仅携带原始图片ID还携带展示参数,则所述请求判断单元确定所述URL为展示图片访问请求的URL。
根据本发明一优选实施例,所述参数解析单元在解析所述URL获取原始图片ID和展示参数时,判断所述URL是否进行了加密,如果是,则对所述URL进行解密得到所述原始图片ID和展示参数;如果解密失败,则确定所述URL为伪造的请求。
根据本发明一优选实施例,所述参数解析单元在对所述URL进行解密时,如果所述URL中包含的水印图片ID字段为空,则对原始图片ID的密文进行解密得到原始图片ID的明文;如果所述URL中包含的水印图片ID字段不为空,则对水印图片ID的密文进行解密得到水印图片ID的明文,将水印图片ID的明文和URL中包含的其他展示参数一起作为密钥对原始图片ID的密文进行解密,得到原始图片ID的明文。
根据本发明一优选实施例,所述图片生成单元,还用于判断所述参数解析单元解析得到的展示参数是否在白名单规定的可使用展示参数范围内,如果是,执行所述从原始图片存储引擎获取所述原始图片ID对应的原始图片的操作,否则,确定所述URL为恶意攻击。
根据本发明一优选实施例,所述交互单元,还用于接收上传的原始图片;
所述图片保存单元,还用于针对该上传的原始图片生成原始图片ID,判断原始图片存储引擎中是否已经存在该原始图片ID,如果是,则不存储该上传的原始图片;否则,将该上传的原始图片以及原始图片ID存储在所述原始图片存储引擎中。
根据本发明一优选实施例,所述图片保存单元在针对该上传的原始图片生成原始图片ID时具体执行:
对原始图片进行信息摘要算法MD5,得到一个128位的串;
将所述128位的串切分为两个64位的串str1和str2;
将str1和str2做异或处理,得到串str3;
将str3的结果去掉首位,得到63位的正整数作为原始图片ID。
由以上技术方案可以看出,本发明提供了一种基于访问的展示图片生成方式,即在接收到展示图片访问请求的URL时,如果展示图片存储引擎中尚没有该URL请求的展示图片,则对该URL进行解析获取原始图片ID和展示参数后生成展示图片,并将URL和对应的展示图片存入展示图片存储引擎中供下次该URL能够直接访问到展示图片。通过该方法除了上传原始图片之外,无需额外进行展示图片的上传,而是在图片服务器本地基于访问生成展示图片,显然减少了图片上传时间;另外,对于没有访问需求的展示图片则不会被生成且存入展示图片存储引擎,节约了存储空间;同时这种基于访问生成展示图片的方式也使得访问需求更加灵活。
【附图说明】
图1为本发明实施例一提供的基于访问的展示图片生成方法流程图;
图2为本发明实施例一提供的图片访问请求的URL中type字段的位图;
图3为本发明实施例二提供的基于访问的展示图片生成装置结构图。
【具体实施方式】
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
实施例一、
图1为本发明实施例一提供的基于访问的展示图片生成方法流程图,该方法由图片服务器侧执行,如图1所示,该方法具体包括:
步骤101:接收图片访问请求的URL。
该图片请求的URL可能是原始图片请求的URL,也可能是展示图片请求的URL。
其中对于原始图片请求的URL包含原始图片ID,其组成可以采用诸如“Original_URL=imageid”这样的格式,其中imageid是一个63位长整型数据。该原始图片请求的URL可以采用但不限于如下步骤S11-步骤S14实现:
步骤S11、对原始图片进行信息摘要算法(MD5),得到一个128位的串;
步骤S12、将MD5的结果切分为两个64位的串str1和str2;
步骤S13、将str1和str2做异或处理,得到串str3;
步骤S14、将str3的结果去掉首位,得到该63位的正整数。
采用上述方式可以使得相同的原始图片具有唯一的imageid,当多次上传同一个原始图片时,当通过上述方式计算出的imageid如果已经存在于原始图片存储引擎中,则说明该原始图片已经存在于原始图片存储引擎中,则不必重复上传和存储。
对于展示图片请求的URL则包含原始图片ID和展示参数,其中展示参数包含水印参数、缩放参数和压缩参数中的至少一种。其中水印参数包括水印ID,还可以包括水印类型(即文字水印、图片水印或者将文字生成图片后打水印)或者水印位置(即将水印打在原始图片的哪个位置)等。缩放参数包括缩放尺寸(即缩放后图片的高和宽),还可以包括缩放策略(例如等比例缩放、缩放宽、缩放高等)或者剪切策略(剪切原始图片的哪个位置)等。压缩参数包括压缩比等。
另外,该展示图片请求的URL可以采用诸如“PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type]”的格式。其中watermarkid为水印ID,即用来打水印的图片或文字ID,width和height是缩放参数,分别为缩放后图片的宽和高,type为类型字段,可以用于携带压缩参数,或者其他水印参数和缩放参数。
除此之外,为了提高安全性,该展示图片请求的URL也可以采用诸如“PresentImage_URL=imageid'-[watermarkid']-[width]-[height]-[type]”的格式。其中imageid'和watermarkid'分别为加密后的原始图片ID和水印ID。生成该URL时,如果watermarkid'字段为空,则对imageid直接加密得到imageid';如果watermarkid'字段不为空,则对watermarkid加密得到watermarkid',然后将watermarkid'以及width、height和type中的至少一种作为密钥,对imageid进行加密得到imageid'。
下面对type字段中包含的内容提供一种优选实例,如图2所示,该type字段的实现可以使用位图的方式,前6位携带缩放参数,7-12位携带水印参数,13-18位携带压缩参数,18位以上可以是扩展字段,用于后续扩展使用。
在前6位携带的缩放参数中,1-2位用于标识缩放策略,例如可以包含四种:00表示等比例缩放,01表示缩放宽,即对高进行剪切,10表示缩放高,即对宽进行剪切,11表示对宽和高都进行剪切。3-4位标识剪切策略,例如包含三种:01表示截取图像的左上部分,10表示截取图像的中间部分,11表示截取图像的右下部分。
在7-12位携带的水印参数中,1-2位用于标识水印的类型,例如可以包含三种:00表示文字水印,01表示图片水印,10表示将文字先生成图片然后打水印。3-6位用于标识水印位置,即将水印打在原始图片的哪个位置,水印位置是一个九宫格,例如分别采用0001-1001表示左上部,中上部,右上部,左中部,中部,右中部,左下部,中下部,右下部的水印位置。
在13-18位携带的压缩参数中,可以只占用4个位段,例如从0001-1010代表的1-10之间的10个数,分别表示10%-100%的压缩比。
上述格式中如果不包含哪种参数,其对应字段可以为空,例如watermarkid或watermarkid'字段为空,则表示不需要对原始图片进行打水印的处理。如果除了包含原始图片ID的字段之外,其他字段均为空,则说明该URL为原始图片请求的URL。
上述URL可以是预先生成并由图片服务器推送给客户端或浏览器,并在客户端或浏览器展示给用户,用户要进行图片访问而点选某个URL后,客户端或浏览器就会将该URL发送给图片服务器。也可以是其他的实现方式,例如,客户端或浏览器为用户提供原始图片和展示参数的可选项,当用户点选这些可选项后会自动生成URL并发送给图片服务器。
步骤102:判断接收到的URL是否符合预设的格式要求,如果是,继续执行步骤103;否则,返回要访问的图片不存在的提示,结束流程。
该预设的格式要求可以采用上述的几种格式,诸如“PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type]”、“PresentImage_URL=imageid'-[watermarkid']-[width]-[height]-[type]”或者,“Original_URL=imageid”等,然后采用正则匹配的方式判断是否能够匹配上,例如判断是否能正则匹配得上如下的正则式[0-9a-z]{24}-[0-9a-z]{0,24}-[0-9]{0,5}-[0-9]{0,5}-[0-9]*或者[0-9a-z]{24},如果是,则执行步骤103;否则认为不是合法的访问请求,因此向用户返回要访问的图片不存在的提示。
需要说明的是,本步骤是为了提高解析效率,避免后续对URL进行解析失败而提前执行的格式要求判断,是可选步骤。
步骤103:判断接收到的URL访问原始图片还是访问展示图片,如果访问原始图片,则执行步骤104;如果访问展示图片,则执行步骤106。
本步骤可以通过判断URL中是否包含除原始图片ID之外的其他参数,如果否,例如是“Original_URL=imageid”格式,或者虽然是“PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type]”和“PresentImage_URL=imageid'-[watermarkid']-[width]-[height]-[type]”格式,但除了imageid或imageid'字段之外的其他字段都为空,则确定接收到的URL访问原始图片;否则认为访问展示图片。
步骤104:解析URL获取原始图片ID。
从imageid字段中获取原始图片ID。
步骤105:判断原始图片存储引擎中是否查找得到该原始图片ID对应的原始图片,如果是,将该原始图片进行返回,结束流程;否则,返回要访问的图片不存在的提示,结束流程。
需要说明的是,在该实施例中也可以不执行上述步骤103-105,默认系统仅提供对展示图片进行访问,认为所有的URL均为展示图片访问请求,而直接执行步骤106。
步骤106:判断展示图片存储引擎中是否存在该URL对应的展示图片,如果是,返回该URL对应的展示图片;否则执行步骤107。
根据后续步骤的描述可知,在基于访问生成展示图片后会在展示图片存储引擎中存储URL与展示图片之间的对应关系,如果本次访问中经查询展示图片存储引擎发现已经存在该URL对应的展示图片,则无需重复进行展示图片的生成,直接向用户返回对应的展示图片即可。
步骤107:解析URL获取原始图片ID和展示参数。
如果该URL是展示图片访问请求,则该URL的格式是“PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type]”或者“PresentImage_URL=imageid'-[watermarkid']-[width]-[height]-[type]”。如果是“PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type]”,则说明是未加密的,从imageid字段中获取原始图片ID,从watermarkid字段中获取水印ID,从width和height字段中获取缩放参数的宽和高,从type字段中获取压缩参数或者其他水印参数、缩放参数。
如果“PresentImage_URL=imageid'-[watermarkid']-[width]-[height]-[type]”格式,则需要进行解密,如果watermarkid'为空,则直接对imageid'进行解密得到imageid的明文。如果watermarkid'不为空,则对水印ID进行解密后,得到水印ID的明文,然后将水印ID的明文和其他参数一起作为密钥对imageid'进行解密,得到原始图片ID的明文。如果解密失败,则认为该URL是伪造的请求。
步骤108:从原始图片存储引擎获取原始图片ID对应的原始图片,如果URL中存在水印参数,则根据水印参数中的水印ID从水印图片存储引擎中获取对应的水印图片。
步骤109:依据展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片。
如果URL中包含水印参数,则需要进行打水印处理,利用水印图片对原始图片进行打水印,如果还包含其他水印参数,例如水印类型或水印位置,则在打水印时进一步结合其他水印参数,例如将水印图片打在原始图片上对应的水印位置,得到展示图片。
如果URL中包含缩放参数,则需要进行缩放处理,例如依据缩放后图片的宽和高,对原始图片或者打水印之后的图片(这种情况对应于同时包含水印参数和缩放参数时)进行缩放,还可以进一步结合其他缩放参数,例如缩放策略、剪切策略等,最终得到展示图片。
如果URL中包含压缩参数,则需要进行压缩处理,例如依据压缩参数中的压缩比对原始图片或者打水印之后的图片或者缩放之后的图片进行压缩,得到展示图片。
如果同时包含水印参数、缩放参数和压缩参数中的至少两种,则依据预设的处理策略,依次进行不同的处理。例如预先设置的处理策略可以是先打水印,再缩放,然后进行压缩。
步骤110:将URL对应生成的展示图片存至展示图片存储引擎中,并返回生成的展示图片。
另外,对于展示图片而言,生成这样的图片服务器是需要开销的,为了防止恶意攻击,可以针对展示参数配置白名单,该白名单中可以限制可使用的展示参数范围。在步骤108之前可以首先判断解析得到的展示参数是否在白名单中,即是否在可使用的展示参数范围内,如果是,则认为是合法的URL,继续执行步骤108;否则认为是恶意攻击,拒绝该图片访问请求,结束流程。例如,可以在白名单中设置图片压缩后的宽和高的范围,只有在该范围内的才是合法的,避免恶意用户制造大量具有不同图片缩放后宽和高参数的图片访问请求,短时间内对服务器进行攻击,从而造成服务器瘫痪。
以上是对本发明所提供的方法进行的详细描述,下面结合实施例二对本发明提供的装置进行详细描述。
实施例二、
图3为本发明实施例二提供的基于访问的展示图片生成装置,该装置可以设置于图片服务器侧,如图3所示,该装置包括:交互单元300、展示图片判断单元301、参数解析单元302、图片生成单元303和图片保存单元304。
交互单元300接收展示图片访问请求的URL。
展示图片判断单元301判断展示图片存储引擎中是否存在交互单元300接收到的展示图片访问请求的URL对应的展示图片,如果是,将URL对应的展示图片发送给交互单元300,由交互单元300返回展示图片判断单元301发送的展示图片,否则触发参数解析单元302。
参数解析单元302受到展示图片判断单元301的触发后,解析URL获取原始图片ID和展示参数,展示参数包括水印参数、缩放参数和压缩参数中的至少一种。
其中参数解析单元302在解析URL获取原始图片ID和展示参数时,可以首先判断URL是否进行了加密,如果是,则对URL进行解密得到原始图片ID和展示参数;如果解密失败,则确定URL为伪造的请求。
具体地在对URL进行解密时,如果URL中包含的水印图片ID字段为空,则对原始图片ID的密文进行解密得到原始图片ID的明文;如果URL中包含的水印图片ID字段不为空,则对水印图片ID的密文进行解密得到水印图片ID的明文,将水印图片ID的明文和URL中包含的其他展示参数一起作为密钥对原始图片ID的密文进行解密,得到原始图片ID的明文。
图片生成单元303从原始图片存储引擎获取原始图片ID对应的原始图片,依据展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片。
如果URL中解析出水印图片ID,则图片生成单元303还用于从水印图片存储引擎中获取水印图片ID对应的水印图片,该情况图3中未示出。
具体地,如果URL中包含水印参数,则需要进行打水印处理,利用水印图片对原始图片进行打水印,如果还包含其他水印参数,例如水印类型或水印位置,则在打水印时进一步结合其他水印参数,例如将水印图片打在原始图片上对应的水印位置,得到展示图片。
如果URL中包含缩放参数,则需要进行缩放处理,例如依据缩放后图片的宽和高,对原始图片或者打水印之后的图片(这种情况对应于同时包含水印参数和缩放参数时)进行缩放,还可以进一步结合其他缩放参数,例如缩放策略、剪切策略等,最终得到展示图片。
如果URL中包含压缩参数,则需要进行压缩处理,例如依据压缩参数中的压缩比对原始图片或者打水印之后的图片或者缩放之后的图片进行压缩,得到展示图片。
如果同时包含水印参数、缩放参数和压缩参数中的至少两种,则依据预设的处理策略,依次进行不同的处理。例如预先设置的处理策略可以是先打水印,再缩放,然后进行压缩。
图片保存单元304将该URL对应生成的展示图片存至展示图片存储引擎中。
然后交互单元300返回图片生成单元304生成的展示图片。
上述描述的是如果接收到的URL就是展示图片访问请求的情况,还有一些情况是对用户发送的图片访问请求并没有进行限定,其有可能是原始图片访问请求,也可能是展示图片访问请求,此时,该装置还可以包括:请求判断单元305。
交互单元300接收到图片访问请求的URL后,先将URL提供给请求判断单元305。
请求判断单元305判断出该URL是展示图片访问请求的URL时将该URL发送给展示图片判断单元301;判断出该URL是原始图片访问请求的URL时,触发参数解析单元302。
具体地,如果URL中仅携带原始图片ID,则请求判断单元305确定URL为原始图片访问请求的URL;如果URL中不仅携带原始图片ID还携带展示参数,则请求判断单元305确定URL为展示图片访问请求的URL。
此时的参数解析单元302受到请求判断单元305的触发后,解析URL获取原始图片ID,将原始图片存储引擎中原始图片ID对应的原始图片发送给交互单元300。
交互单元300返回原始图片ID对应的原始图片给用户。
由于可能会存在原始图片存储引擎中无法查找到原始图片ID对应的原始图片,优选地,参数解析单元302还可以用于判断原始图片存储引擎中是否查找到原始图片ID对应的原始图片,如果是,将原始图片ID对应的原始图片发送给交互单元300;否则,触发交互单元300返回要访问的图片不存在的提示。
为了提高效率,交互单元300在接收到图片访问请求的URL后,可以首先判断URL是否符合预设的格式要求,如果是,将URL提供给请求判断单元305;否则直接返回要访问的图片不存在的提示。
另外,对于展示图片而言,生成这样的图片服务器是需要开销的,为了防止恶意攻击造成图片服务器瘫痪,图片生成单元303可以判断参数解析单元302解析得到的展示参数是否在白名单规定的可使用展示参数范围内,如果是,执行从原始图片存储引擎获取原始图片ID对应的原始图片的操作,否则,确定URL为恶意攻击。
由于原始图片存储引擎中的原始图片可以由用户上传得来,因此交互单元300,还用于接收上传的原始图片。
图片保存单元304针对该上传的原始图片生成原始图片ID,首先判断原始图片存储引擎中是否已经存在该原始图片ID,如果是,则不存储该上传的原始图片;否则,将该上传的原始图片以及原始图片ID存储在原始图片存储引擎中。
其中图片保存单元304在针对该上传的原始图片生成原始图片ID时需要保证相同的原始图片生成的原始图片ID是唯一的,因此可以采用但不限于以下方式:
对原始图片进行信息摘要算法MD5,得到一个128位的串;
将128位的串切分为两个64位的串str1和str2;
将str1和str2做异或处理,得到串str3;
将str3的结果去掉首位,得到63位的正整数作为原始图片ID。
该装置中的上述交互单元300、请求判断单元305、参数解析单元302和图片生成单元303属于逻辑层(LOGIC LAYER),主要负责URL的解析和展示图片的生成;展示图片判断单元301和图片保存单元304属于存储访问层(STORE ACCESS LAYER),负责对存储层的访问;原始图片存储引擎、展示图片存储引擎属于存储层(STORE LAYER)以及图3中未示出的水印图片存储引擎,负责图片数据的存储。
由以上描述可以看出,本发明提供的方法和装置具备以下优点:
1)本发明除了上传原始图片之外,无需额外进行展示图片的上传,而是在图片服务器本地基于访问生成展示图片,显然减少了图片上传时间。
2)本发明这种基于访问的展示图片生成方式对于没有访问需求的展示图片,则不会被生成且存入展示图片存储引擎,相比较现有技术中预先将几十种展示图片上传并存入展示图片存储引擎中的方式,节约了存储空间。
3)本发明根据URL中实际携带的原始图片ID和展示参数动态生成展示图片,可以灵活地满足不同的访问需求。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (20)

1.一种基于访问的展示图片生成方法,其特征在于,该方法包括:
S1、判断展示图片存储引擎中是否存在接收到的展示图片访问请求的URL对应的展示图片,如果是,返回所述URL对应的展示图片;否则执行步骤S2;
S2、解析所述URL获取原始图片ID和展示参数,所述展示参数包括水印参数、缩放参数和压缩参数中的至少一种;
S3、从原始图片存储引擎获取原始图片ID对应的原始图片,依据所述展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片;
S4、将所述URL对应生成的展示图片存至所述展示图片存储引擎中,并返回所述生成的展示图片;
其中,所述URL采用如下格式:
PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type];
所述imageid字段用于携带原始图片ID或加密后的原始图片ID,所述watermarkid字段用于携带水印参数或加密后的水印参数,所述width和height字段用于携带缩放后的图片宽度和高度参数,type字段用于携带压缩参数,或者其他水印参数和缩放参数。
2.根据权利要求1所述的方法,其特征在于,在所述步骤S1之前还包括:
S01、接收图片访问请求的URL;
S02、如果所述URL是展示图片访问请求的URL,则继续执行所述步骤S1,如果是原始图片访问请求的URL,则执行步骤S03;
S03、解析所述URL获取原始图片ID,返回原始图片存储引擎中所述原始图片ID对应的原始图片。
3.根据权利要求2所述的方法,其特征在于,在返回原始图片存储引擎中所述原始图片ID对应的原始图片之前还包括:
判断原始图片存储引擎中是否查找到所述原始图片ID对应的原始图片,如果是,继续执行所述返回原始图片存储引擎中所述原始图片ID对应的原始图片,结束流程;否则,返回要访问的图片不存在的提示,结束流程。
4.根据权利要求2所述的方法,其特征在于,在所述步骤S02之前还包括:
判断所述URL是否符合预设的格式要求,如果是,继续执行所述步骤S02,否则返回要访问的图片不存在的提示,结束流程。
5.根据权利要求2所述的方法,其特征在于,在所述步骤S02中如果所述URL中仅携带原始图片ID,则确定所述URL为原始图片访问请求的URL;如果所述URL中不仅携带原始图片ID还携带展示参数,则确定所述URL为展示图片访问请求的URL。
6.根据权利要求1所述的方法,其特征在于,在步骤S2中解析所述URL获取原始图片ID和展示参数时,判断所述URL是否进行了加密,如果是,则对所述URL进行解密得到所述原始图片ID和展示参数;如果解密失败,则确定所述URL为伪造的请求。
7.根据权利要求6所述的方法,其特征在于,对所述URL进行解密得到所述原始图片ID和展示参数具体包括:
如果所述URL中包含的水印图片ID字段为空,则对原始图片ID的密文进行解密得到原始图片ID的明文;
如果所述URL中包含的水印图片ID字段不为空,则对水印图片ID的密文进行解密得到水印图片ID的明文,将水印图片ID的明文和URL中包含的其他展示参数一起作为密钥对原始图片ID的密文进行解密,得到原始图片ID的明文。
8.根据权利要求1所述的方法,其特征在于,在所述步骤S3之前还包括:
判断解析得到的展示参数是否在白名单规定的可使用展示参数范围内,如果是,继续执行所述步骤S3;否则,确定所述URL为恶意攻击,结束流程。
9.根据权利要求1所述的方法,其特征在于,该方法还包括:
接收到上传的原始图片时,针对该上传的原始图片生成原始图片ID,判断原始图片存储引擎中是否已经存在该原始图片ID,如果是,则不存储该上传的原始图片;否则,将该上传的原始图片以及原始图片ID存储在所述原始图片存储引擎中。
10.根据权利要求9所述的方法,其特征在于,所述针对该上传的原始图片生成原始图片ID具体包括:
对原始图片进行信息摘要算法MD5,得到一个128位的串;
将所述128位的串切分为两个64位的串str1和str2;
将str1和str2做异或处理,得到串str3;
将str3的结果去掉首位,得到63位的正整数作为原始图片ID。
11.一种基于访问的展示图片生成装置,其特征在于,该装置包括:
展示图片判断单元,用于判断展示图片存储引擎中是否存在交互单元接收到的展示图片访问请求的URL对应的展示图片,如果是,将所述URL对应的展示图片发送给交互单元,否则触发参数解析单元;
参数解析单元,用于受到所述展示图片判断单元的触发后,解析所述URL获取原始图片ID和展示参数,所述展示参数包括水印参数、缩放参数和压缩参数中的至少一种;
图片生成单元,用于从原始图片存储引擎获取所述原始图片ID对应的原始图片,依据所述展示参数对原始图片进行相应的打水印、缩放和压缩中的至少一种处理,生成展示图片;
图片保存单元,用于将所述URL对应生成的展示图片存至所述展示图片存储引擎中;
交互单元,用于接收展示图片请求的URL,返回所述展示图片判断单元发送的展示图片,返回所述图片生成单元生成的展示图片;
其中,所述URL采用如下格式:
PresentImage_URL=imageid-[watermarkid]-[width]-[height]-[type];
所述imageid字段用于携带原始图片ID或加密后的原始图片ID,所述watermarkid字段用于携带水印参数或加密后的水印参数,所述width和height字段用于携带缩放后的图片宽度和高度参数,type字段用于携带压缩参数,或者其他水印参数和缩放参数。
12.根据权利要求11所述的装置,其特征在于,该装置还包括:请求判断单元;
所述交互单元接收到图片访问请求的URL后,将所述URL提供给所述请求判断单元;
所述请求判断单元,用于判断出所述URL是展示图片访问请求的URL时,将所述URL发送给所述展示图片判断单元;判断出所述URL是原始图片访问请求的URL时,触发所述参数解析单元;
所述参数解析单元,还用于受到所述请求判断单元的触发后,解析所述URL获取原始图片ID,将原始图片存储引擎中所述原始图片ID对应的原始图片发送给所述交互单元;
所述交互单元,还用于返回所述原始图片ID对应的原始图片。
13.根据权利要求12所述的装置,其特征在于,所述参数解析单元,还用于判断原始图片存储引擎中是否查找到所述原始图片ID对应的原始图片,如果是,将所述原始图片ID对应的原始图片发送给所述交互单元;否则,触发所述交互单元返回要访问的图片不存在的提示。
14.根据权利要求12所述的装置,其特征在于,所述交互单元在接收到图片访问请求的URL后,还用于判断所述URL是否符合预设的格式要求,如果是,将所述URL提供给所述请求判断单元;否则返回要访问的图片不存在的提示。
15.根据权利要求12所述的装置,其特征在于,如果所述URL中仅携带原始图片ID,则所述请求判断单元确定所述URL为原始图片访问请求的URL;如果所述URL中不仅携带原始图片ID还携带展示参数,则所述请求判断单元确定所述URL为展示图片访问请求的URL。
16.根据权利要求11所述的装置,其特征在于,所述参数解析单元在解析所述URL获取原始图片ID和展示参数时,判断所述URL是否进行了加密,如果是,则对所述URL进行解密得到所述原始图片ID和展示参数;如果解密失败,则确定所述URL为伪造的请求。
17.根据权利要求16所述的装置,其特征在于,所述参数解析单元在对所述URL进行解密时,如果所述URL中包含的水印图片ID字段为空,则对原始图片ID的密文进行解密得到原始图片ID的明文;如果所述URL中包含的水印图片ID字段不为空,则对水印图片ID的密文进行解密得到水印图片ID的明文,将水印图片ID的明文和URL中包含的其他展示参数一起作为密钥对原始图片ID的密文进行解密,得到原始图片ID的明文。
18.根据权利要求11所述的装置,其特征在于,所述图片生成单元,还用于判断所述参数解析单元解析得到的展示参数是否在白名单规定的可使用展示参数范围内,如果是,执行所述从原始图片存储引擎获取所述原始图片ID对应的原始图片的操作,否则,确定所述URL为恶意攻击。
19.根据权利要求11所述的装置,其特征在于,所述交互单元,还用于接收上传的原始图片;
所述图片保存单元,还用于针对该上传的原始图片生成原始图片ID,判断原始图片存储引擎中是否已经存在该原始图片ID,如果是,则不存储该上传的原始图片;否则,将该上传的原始图片以及原始图片ID存储在所述原始图片存储引擎中。
20.根据权利要求19所述的装置,其特征在于,所述图片保存单元在针对该上传的原始图片生成原始图片ID时具体执行:
对原始图片进行信息摘要算法MD5,得到一个128位的串;
将所述128位的串切分为两个64位的串str1和str2;
将str1和str2做异或处理,得到串str3;
将str3的结果去掉首位,得到63位的正整数作为原始图片ID。
CN201210340244.5A 2012-09-13 2012-09-13 一种基于访问的展示图片生成方法和装置 Active CN103390012B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210340244.5A CN103390012B (zh) 2012-09-13 2012-09-13 一种基于访问的展示图片生成方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210340244.5A CN103390012B (zh) 2012-09-13 2012-09-13 一种基于访问的展示图片生成方法和装置

Publications (2)

Publication Number Publication Date
CN103390012A CN103390012A (zh) 2013-11-13
CN103390012B true CN103390012B (zh) 2017-03-08

Family

ID=49534288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210340244.5A Active CN103390012B (zh) 2012-09-13 2012-09-13 一种基于访问的展示图片生成方法和装置

Country Status (1)

Country Link
CN (1) CN103390012B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103729825A (zh) * 2013-12-31 2014-04-16 世纪龙信息网络有限责任公司 终端动态适配的图片处理方法
CN104765742B (zh) * 2014-01-06 2019-06-18 阿里巴巴集团控股有限公司 一种信息展示的方法及装置
CN104539714B (zh) * 2014-12-31 2017-11-03 广州华多网络科技有限公司 动态图片服务url生成的方法及装置
WO2016172968A1 (zh) 2015-04-30 2016-11-03 华为技术有限公司 传输云端文件的方法、终端及云端服务器
CN105095490A (zh) * 2015-08-18 2015-11-25 北京奇虎科技有限公司 目标图片搜索方法、终端及系统
CN106682037A (zh) * 2015-11-11 2017-05-17 百度在线网络技术(北京)有限公司 一种操作页面中的图片的方法和装置
CN105843881B (zh) * 2016-03-21 2019-04-26 北京搜狐新媒体信息技术有限公司 一种图片处理url映射方法和装置
CN105868339A (zh) * 2016-03-28 2016-08-17 乐视控股(北京)有限公司 通过动态生成方式获取图片的方法、装置及系统
CN107169008B (zh) * 2017-03-31 2021-06-04 北京奇艺世纪科技有限公司 一种图片展示方法及装置
CN107343029A (zh) * 2017-06-14 2017-11-10 福建中金在线信息科技有限公司 一种获取行情走势图片的方法、装置、设备及介质
CN110069728B (zh) * 2017-10-30 2022-08-12 北京京东尚科信息技术有限公司 用于展示图片的方法及装置
CN110765396A (zh) * 2019-09-28 2020-02-07 同程网络科技股份有限公司 图形适配系统及基于该系统的图形适配方法
CN110807114B (zh) * 2019-11-07 2024-01-30 北京有竹居网络技术有限公司 用于图片展示的方法、装置、终端及存储介质
CN112822152B (zh) * 2020-11-09 2023-07-04 腾讯科技(上海)有限公司 定向信息展示处理方法及相关设备
CN113469866A (zh) * 2021-07-01 2021-10-01 建信金融科技有限责任公司 数据处理方法、装置和服务器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411582A (zh) * 2010-09-21 2012-04-11 腾讯科技(深圳)有限公司 图片搜索方法、装置及客户端
CN102447642A (zh) * 2010-09-30 2012-05-09 腾讯科技(深圳)有限公司 一种基于im客户端实现消息图片管理的方法和装置
CN102480514A (zh) * 2010-11-30 2012-05-30 北京千橡网景科技发展有限公司 提供呈现服务的方法、呈现服务器、web服务器及其处理方法
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259249A (ja) * 2001-03-05 2002-09-13 Kyodo Printing Co Ltd ホームページアクセス方法及びその方式

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102411582A (zh) * 2010-09-21 2012-04-11 腾讯科技(深圳)有限公司 图片搜索方法、装置及客户端
CN102447642A (zh) * 2010-09-30 2012-05-09 腾讯科技(深圳)有限公司 一种基于im客户端实现消息图片管理的方法和装置
CN102480514A (zh) * 2010-11-30 2012-05-30 北京千橡网景科技发展有限公司 提供呈现服务的方法、呈现服务器、web服务器及其处理方法
CN102591964A (zh) * 2011-12-30 2012-07-18 北京新媒传信科技有限公司 数据读写分离机制的实现方法和装置

Also Published As

Publication number Publication date
CN103390012A (zh) 2013-11-13

Similar Documents

Publication Publication Date Title
CN103390012B (zh) 一种基于访问的展示图片生成方法和装置
CN108123800B (zh) 密钥管理方法、装置、计算机设备及存储介质
JP7159183B2 (ja) 暗号プロトコルで使用する行列を共有するデバイス及び方法
CN109474619B (zh) 数据加密上报方法及装置、数据解密方法及装置
Kogan et al. Private blocklist lookups with checklist
CN105373986B (zh) 医院无胶片化云计算的实现方法
CN108600163B (zh) 一种云环境分布式哈希链架构及云数据完整性验证方法
CN110413652B (zh) 一种基于边缘计算的大数据隐私化检索方法
CN108989604A (zh) 图像加密方法、图像传输方法、电子设备、可读存储介质
DE112014000329T5 (de) Anweisung zum Ausführen einer Operation zum Generieren einer pseudozufälligen Zahl
CN112328962B (zh) 矩阵运算优化方法、装置、设备和可读存储介质
CN107995299A (zh) 一种云环境下抗访问模式泄露的盲存储方法
JP7297080B2 (ja) 画像取得方法、画像取得装置、サーバ、及びコンピュータプログラム
CN108959384A (zh) 网页数据获取方法、装置、计算机设备和存储介质
CN111814045A (zh) 数据查询方法、装置、电子设备及存储介质
CN113505318A (zh) 短链接生成方法、装置、设备及存储介质
CN111934854A (zh) 数据确定方法和装置、存储介质及电子装置
CN110149198A (zh) 一种自主可控地对数据进行安全保护与存储的系统和方法
CN107733709A (zh) 数据存储方法、装置及电子设备
US11233703B2 (en) Extending encrypted traffic analytics with traffic flow data
CN111641636A (zh) 物联网数据安全通信的方法、系统、设备及存储介质
CN113329045A (zh) 文件下载方法、装置、计算机可读存储介质和计算机设备
CN105303121B (zh) 一种高维空间数据的安全查询方法、装置及系统
Li et al. Dynamic range query privacy-preserving scheme for blockchain-enhanced smart grid based on lattice
CN115016754A (zh) 设备间的页面同步显示方法、装置、电子设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: BAIDU IN LINE NETWORK TECHNOLOGY CO LTD (BEOJING)

Free format text: FORMER OWNER: LEHO (BEIJING) TECHNOLOGY CO., LTD.

Effective date: 20131028

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 100101 CHAOYANG, BEIJING TO: 100085 HAIDIAN, BEIJING

TA01 Transfer of patent application right

Effective date of registration: 20131028

Address after: 100085 Beijing, Haidian District, No. ten on the street Baidu building, No. 10

Applicant after: BEIJING BAIDU NETCOM SCIENCE AND TECHNOLOGY Co.,Ltd.

Address before: 100101, building 2, building 8, Beichen West Road, Beijing, Chaoyang District, A1209

Applicant before: Philharmonic active (Beijing) Technology Co., Ltd.

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant