一种网站图片处理系统及方法与流程

文档序号:12666955阅读:713来源:国知局

本发明属于涉及计算机软件技术领域,尤其涉及一种网站图片处理系统及方法。



背景技术:

随着社会的发展,互联网已经成为人们生活和工作中不可或缺的,互联网技术也随之得到了长足的发展。现有的网站不可避免要使用很多图片,因此需要使用各种图片优化处理技术和分布式存储技术。现有的图片优化及分布式存储技术包括以下几种:

一种是淘宝网使用的非开源的图片处理技术,其依托于淘宝网强大的服务器硬件投入和CDN资源,这是中小型网站无法承受的成本。

还有一种是普遍采用的,将图片进行处理后进行压缩和优化,然后存储在服务器中。这种技术大量占用服务器端的计算资源,很容易导致服务器不稳定。

由此可见,现有技术中缺少一种性能优越且不会过多增加硬件成本的针对中小型网站的图片处理方案。



技术实现要素:

针对现有技术中中小型网站在图片处理方面存在的问题,本发明实施例的目的是提供一种有效且高效的网站图片处理系统及方法。

为了解决上述问题,本发明实施例提出了一种网站图片处理方法,包括:

接收代理服务器发送来的请求读取图片的URL,所述URL中包括图片的链接,还包括请求对图片进行处理的参数;

对所述URL进行解析以获取对图片进行处理的参数,并根据所述参数通过Lua软件对相应的图片进行处理。

其中,该URL为Http://网页链接_长x宽q分辨率.jpg,其中长x宽为所需图片的尺寸,q分辨率为所需的图片的分辨率。

其中,所述方法还包括:将通过Lua软件进行处理后的图片进行缓存。

其中,所述方法还包括:当接收到代理服务器发送来的请求读取图片的URL后,判断是否有缓存的图片,如果有则直接将缓存的图片发送到代理服务器。

同时,本发明实施例还提出了一种图片处理系统,包括请求模块、图片处理模块;其中,

所述请求模块用于接收代理服务器发送来的请求读取图片的URL,所述URL中包括图片的链接,还包括请求对图片进行处理的参数;

所述图片处理模块用于对所述URL进行解析以获取对图片进行处理的参数,并根据所述参数通过Lua软件对相应的图片进行处理。

其中,该URL为Http://网页链接_长x宽q分辨率.jpg,其中长x宽为所需图片的尺寸,q分辨率为所需的图片的分辨率。

其中,所述系统还包括:缓存模块,用于将通过Lua软件进行处理后的图片进行缓存。

其中,所述请求模块还用于执行以下操作:当接收到代理服务器发送来的请求读取图片的URL后,判断是否有缓存的图片,如果有则直接将缓存的图片发送到代理服务器。

本发明的上述技术方案的有益效果如下:上述的技术方案提出了一种面向中小型网站的图片处理系统和方法,为中小型网站提供图片分布式存储的解决方案的同时,还提供了图片缩放及图片质量压缩的功能,提高了前端开发者的开发效率,减少了后期对于网站优化的时间,并提高了网站的访问速度及高可用性。分布式服务,易于部署,减少了运维成本,2台服务器即可形成服务集群。将图片优化从服务中剥离,通过服务器端执行的lua脚本,充分利用服务器的强大计算能力,进行实时的优化处理,增加服务端的并发能力。一次性生成优化图片,并在服务端存储7天,节约服务器资源及避免了重复消耗。

附图说明

图1是本发明实施例的流程示意图。

具体实施方式

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。

本发明实施例中应用到的现有技术包括:

1、Nginx:Nginx("engine x")是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由Igor Sysoev为俄罗斯访问量第二的Rambler.ru站点开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4发布

2、Lua:Lua是一个小巧的脚本语言。是巴西里约热内卢天主教大学(Pontifical Catholic University of Rio de Janeiro)里的一个研究小组,由Roberto Ierusalimschy、WaldemarCeles和Luiz Henrique de Figueiredo所组成并于1993年开发。其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua由标准C编写而成,几乎在所有操作系统和平台上都可以编译,运行。

3、Fastdfs:FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。

4、GraphicsMagick:GraphicsMagick号称图像处理领域的瑞士军刀。短小精悍的代码却提供了一个鲁棒、高效的工具和库集合,来处理图像的读取、写入和操作,支持超过88种图像格式,包括重要的DPX、GIF、JPEG、JPEG-2000、PNG、PDF、PNM和TIFF。

本发明实施例提出了一种如图1所示的网站图片处理方法,包括:

接收代理服务器发送来的请求读取图片的URL,所述URL中包括图片的链接,还包括请求对图片进行处理的参数;

对所述URL进行解析以获取对图片进行处理的参数,并根据所述参数通过Lua软件对相应的图片进行处理。

具体的,该URL为Http://网页链接_长x宽q分辨率.jpg,其中长x宽为所需图片的尺寸,q分辨率为所需的图片的分辨率。

以一个具体的例子来说,

http://img.?????.com/group1/M00/00/00/wKgX2Fgf9hmANBKVAEWAHUby31c483.jpg

该URL是一个典型的不对图片进行处理的请求读取图片的URL。

http://img.?????.com/group1/M00/00/00/wKgX2Fgf9hmANBKVAEWAHUby31c483_200x200q50.jpg

该URL是本发明实施例中请求进行图片处理的例子。_200x200q50为优化参数,200x200为图片的最大宽度和最大高度,检测到该参数后,图片服务会自动将图片等比缩放到相应尺寸,而不会产生拉伸和形变;q50为质量优化参数,q50表示将图片按照50%的质量进行压缩处理,以减小图片尺寸。经过处理后的图片,前端可以直接在代码中使用,无需提前生成优化图片。

在实际使用中发现,未经处理的原始图片大小为4.3Mb;经过200x200q50压缩后,仅剩7.9Kb,优化了99.8%的尺寸。这样可以在服务器端通过简单的处理来降低数据传输量以及数据处理量。

进一步的,所述方法还包括:将通过Lua软件进行处理后的图片进行缓存。

进一步的,所述方法还包括:当接收到代理服务器发送来的请求读取图片的URL后,判断是否有缓存的图片,如果有则直接将缓存的图片发送到代理服务器。

同时,本发明实施例还提出了一种图片处理系统,包括请求模块、图片处理模块;其中,

所述请求模块用于接收代理服务器发送来的请求读取图片的URL,所述URL中包括图片的链接,还包括请求对图片进行处理的参数;

所述图片处理模块用于对所述URL进行解析以获取对图片进行处理的参数,并根据所述参数通过Lua软件对相应的图片进行处理。

进一步的,所述系统还包括:缓存模块,用于将通过Lua软件进行处理后的图片进行缓存。

进一步的,所述请求模块还用于执行以下操作:当接收到代理服务器发送来的请求读取图片的URL后,判断是否有缓存的图片,如果有则直接将缓存的图片发送到代理服务器。

在工作时,首先将图片通过上传平台存储至fastdfs集群中。当nginx接收到图片访问请求时,会先判断图片是否存在。如果所请求的图片已经存在(即是否已经缓存),则直接将文件发送出去;否则,将根据图片的url判断是否存在优化参数,如果优化参数存在,则nginx会通过lua脚本调用GraphicsMagick对图片进行处理,生成相应优化参数的图片,并存储至fastdfs的storage路径中(可以只保存7天,以节省存储空间),同时返回该优化后的图片。下次再次遇到相同请求时,则直接返回已存在的图片。如果图片不存在,且没有优化参数时,会自动返回原始图片,防止出现空白。

上述方案为中小型网站提供图片分布式存储的解决方案的同时,还提供了图片缩放及图片质量压缩的功能,提高了前端开发者的开发效率,减少了后期对于网站优化的时间,并提高了网站的访问速度及高可用性。分布式服务,易于部署,减少了运维成本,2台服务器即可形成服务集群。将图片优化从服务中剥离,通过服务器端执行的lua脚本,充分利用服务器的强大计算能力,进行实时的优化处理,增加服务端的并发能力。一次性生成优化图片,并在服务端存储7天,节约服务器资源及避免了重复消耗。

以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1