nginx-lua-fastdfs-GraphicsMagick 动态生成缩略图 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
hpxl
V2EX    NGINX

nginx-lua-fastdfs-GraphicsMagick 动态生成缩略图

  •  
  •   hpxl 2014-05-22 22:27:04 +08:00 14674 次点击
    这是一个创建于 4160 天前的主题,其中的信息可能已经有所发展或是发生改变。
    https://github.com/hpxl/nginx-lua-fastdfs-GraphicsMagick

    利用nginx lua 获取fastdfs的原图,存放原图到本地,根据不同规则url,例如:_60x60.jpg、_80x80.jpg,利用gm生成缩略图存放到本地。 第二次访问直接返回本地已生成的缩略图。 定时凌晨清除一段时间内未访问的图片,节省空间。

    图片访问举例

    http://192.168.1.113/group1/M00/00/00/wKgBcVN0wDiAILQXAAdtg6qArdU189.jpg
    http://192.168.1.113/group1/M00/00/00/wKgBcVN0wDiAILQXAAdtg6qArdU189.jpg_80x80.jpg
    http://gi1.md.alicdn.com/imgextra/i1/401612253/T2ASPfXE4XXXXXXXXX_!!401612253.jpg_60x60.jpg
    参考网址

    https://github.com/openresty/lua-nginx-module
    https://github.com/azurewang/Nginx_Lua-FastDFS
    https://github.com/azurewang/lua-resty-fastdfs
    http://rhomobi.com/topics/23
    http://bbs.chinaunix.net/thread-4133106-1-1.html

    希望可以给你一些思路。
    6 条回复    2016-06-30 17:01:45 +08:00
    pubby
        1
    pubby  
       2014-05-23 01:42:46 +08:00   2
    一直也在用类似的图片动态缩略的网关。

    1.支持任何图片源url
    2.多种裁剪方式
    3.可指定空白填色

    额,前端配了个squid加速缓存

    7年前最早用php写的,压力一大就渣了
    5年前改成C写的fastcgi,存储是hash目录,都开到60个进程了,并发一大还是渣(无法分布式部署)
    刚刚前几天用go重写了,存储用的redis协议加leveldb,保存原图和缩略图,热点数据识别,定时清理冷数据,可分布式部署。

    公司线上在用,就不开源了。


    另外,楼主的缩略参数得调调,大图缩小图,比例大于某个值得加锐化,要不然小图太雾蒙蒙了
    当年对比flickr,测试无数次得到了一些参数值。
    pubby
        2
    pubby  
       2014-05-23 01:45:21 +08:00
    yemoluo
        3
    yemoluo  
       2014-05-23 09:36:09 +08:00
    @pubby 能介绍一下你的那些参数么?
    pubby
        4
    pubby  
       214-05-23 17:55:45 +08:00   2
    @GTim
    一般都缩略成jpg的吧,以ImageMagick为例

    基本参数大致是 <尺寸变换参数> -type TrueColor <微调参数> +profile '*' -sampling-factor "1x1,1x1,1x1" -quantity 90 <input> jpg:<output>

    当 imgW*imgH/toW/toH > 4.0 需要微调参数 -sharpen 1x1

    只限宽度的,当 imgW/toW > 2.0 需要微调参数 -sharpen 1x1

    如果原图是gif和png的类型可以带上微调参数 -mosaic

    尺寸变化参数上也需要注意,
    举个例子:
    如果原图很大,但目标图只要200x宽的,
    那从性能和最后的图片质量考虑可以直接采样 -size 500x 大小后再续处理
    可以定几个采样区间。


    以上只是些使用经验,仅供参考,专长不是图片处理方面的,如果描述有误请见谅:p
    yemoluo
        5
    yemoluo  
       2014-06-18 16:58:27 +08:00
    @pubby 嗯,谢谢,已经解释的很详细了
    javacty
        6
    javacty  
       2016-06-30 17:01:45 +08:00
    对缩图优化这块很感兴趣,请问 @pubby ,-mosaic 看说明是:“ create a mosaic from an image sequence ”,百度和 Google 了,都没找到什么信息, 请问对 png 转 jpg 有什么优化处理 ?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2018 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 00:02 PVG 08:02 LAX 17:02 JFK 20:02
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86