这么做有两个缺点:
1.如果需要新的尺寸图片的话,只能遍历下数据库,重新生成一次图片。
2.图片的尺寸会越来越多,要存的图片也越来越多,仅仅是因为他们的尺寸不同。
nginx有个模块,可以处理此内容,http_image_filter_module,可以重新根据定义的大小来压缩后台代理服务器的原始图片,经测试,效果不错。
此模块默认是不安装的,插件名称http_image_filter_module ,安装nginx的时候,使用--with-http_image_filter_module来进行安装
安装方法,http://mushme.iteye.com/blog/1870080
server{ listen 8282; server_name simg.frady.info;#小尺寸图片的域名 root /web/www/ROOT/; location /picture/ {#此目录下的图片会被统一裁切 image_filter test; proxy_pass http://img.frady.info;#原始图片的域名 image_filter resize 60 60; # image_filter rotate 90;#旋转90度,这东西实际的使用场景有吗,在页面上旋转图片是用这个做? error_page 415 = /nopic.jpg; } }
下面的配置可以反馈图片的信息 location /picture/ { proxy_pass http://img.frady.info; image_filter size; }
结果如
{ "img" : { "width": 208, "height": 181, "type": "jpeg" } }
官网链接:http://nginx.org/en/docs/http/ngx_http_image_filter_module.html