V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Reign
V2EX  ›  程序员

flickr 到底用的什么缩放图片方式,其缩略图生成得如此完美?

  •  
  •   Reign · 2017-06-20 15:07:41 +08:00 via iPhone · 2507 次点击
    这是一个创建于 2507 天前的主题,其中的信息可能已经有所发展或是发生改变。
    flickr 的缩略图生成得非常完美,锐化合理,图片显示很清晰,基本能够把大图的细节都展示出来,我个人用 php 自带的 GD 库和 phpMagick 缩放了一下,和 flickr 比相差甚远,最差的是 imagecopyresampled 缩小图片,生成的缩略图模糊且粗糙,细节光泽完全没有,其次是 phpMagick 的 lanczos filter,效果还行,耗时较长,最好的是 phpMagick 的 sinc filter,效果还行,耗时最长,但还是比不上 flickr 的缩略图,V 友们知不知道有没有一种能够接近 flickr 缩略图生成方式的插件 or 代码,phpMagick 以何种方式缩小图片最能还原原图细节?因为目前产品是图片类型,对细节要求比较高
    5 条回复    2017-06-21 15:15:11 +08:00
    raptium
        1
    raptium  
       2017-06-20 15:16:21 +08:00
    我记得效果和 Photoshop 里的 USM 锐化 差不多
    reus
        2
    reus  
       2017-06-20 15:20:30 +08:00
    google "flickr image resize algorithm"
    pubby
        3
    pubby  
       2017-06-20 17:43:32 +08:00   ❤️ 6
    以前对着 flickr 测试过很多次,可以做到画质和大小很接近,用的 ImageMagick

    convert input.jpg -size 800x -type TrueColor -thumbnail 500x -sharpen "1x1" -sampling-factor "1x1,1x1,1x1" -quality 90 output.jpg


    如果图片原始分辨率很大,就 -size 800x 加快速度
    比如缩放到 500 宽,那就 -size 800x 采样

    -sharpen "1x1" 需要根据条件来判断是否采用:
    根据我的经验 原始面积 /目标面积 >=4 就需要开启锐化
    DavidSheh
        4
    DavidSheh  
       2017-06-21 11:15:04 +08:00
    flickr 官方有篇文章介绍使用 GPU 实时调整图片大小的文章,你可以看看,链接:
    http://code.flickr.net/2015/06/25/real-time-resizing-of-flickr-images-using-gpus/

    友情提示:打开链接需要翻墙,用 host 文件好像不能打开,得用 VPN 才行。
    nicoljiang
        5
    nicoljiang  
       2017-06-21 15:15:11 +08:00
    以前我做过。
    我觉得这里可能有底层技术的差别,但是其实还有很多是你的策略可以掌控的。
    比如我以前的策略,就是每缩小到一个什么级别,锐化程度就提高一点,清晰度也提高一点。
    最终可以保证非常小的图也有很好的细节。当然或许跟 Flickr 相比可能还有差距,但肉眼绝对看不出来了(我对比过)。
    另外以前在模仿新浪微博的水印的时候也是,为了保证各个尺寸的图片都拥有大小合理且清晰的水印图,实际上做起来的策略不简单的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2123 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 01:57 · PVG 09:57 · LAX 18:57 · JFK 21:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.