开源图片存储服务:zimg

jopen 10年前

zimg是一个具有图片处理功能的图片存储服务,你可以上传图片到zimg服务器,然后通过带有参数的URL来获取被处理过的图片。比如下面的URL将获取到一张被缩放到500*500,旋转45°,颜色变成灰白,图片质量为75%,格式转化成jpeg的图片:

http://demo.buaa.us/5f189d8ec57f5a5a0d3dcba47fa797e2?w=500&h=500&g=1&r=45&q=75&f=jpeg

如果你有多个客户端,或者在网站上有多个位置需要展示不同分辨率,不同质量的图片,那么这样的图片存储服务器对于前端来说将是非常方便的,不仅减少 工作量,更重要的是可以降低网络传输的流量,提高页面加载速度。通常,图片的存储和处理是分开的,裁剪和压缩部分一般由PHP调用图片处理库来完成,一个 字形容就是慢。zimg从网络I/O、HTTP解析、图片压缩到数据存储,全部用c完成,而且在这个过程中尽可能的避免文件操作和内存拷贝,使得整体处理 能力极高。

架构图

zimg v3.1 的架构与 v2.0相比没有变化,由于加强了实时处理能力,大型图床服务可以采用同时启用多台zimg,前端引入LVS的方式来进行负载均衡,每一台zimg都是无 状态的,它们可以同时配置相同的存储后端。具体的设计还要根据具体的需求和实际的压力情况进行调整,在此列出一个示意架构图作为示范:

开源图片存储服务:zimg


详细介绍:http://zimg.buaa.us/documents/design_of_zimg_new_generation/

项目主页:http://www.open-open.com/lib/view/home/1410273249867