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

PHP 有什么较好的质量压缩图片吗

  •  
  •   bestmos · 2021-08-15 14:24:15 +08:00 · 3381 次点击
    这是一个创建于 956 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目前找到的一般都是 imagecopyresampled,但是尺寸留为 100%的话,压缩效果较一般,处理过的图片使用安卓的 ImageCompress 库,比率设置为 40 都可以再缩小一半。 PHP 有什么类似的质量压缩类的方法吗

    21 条回复    2021-08-31 14:12:47 +08:00
    X-Force
        1
    X-Force  
       2021-08-15 14:36:59 +08:00
    转成 webp 啊
    ijrou
        2
    ijrou  
       2021-08-15 17:07:58 +08:00
    前端压缩就行了。。。
    akira
        3
    akira  
       2021-08-15 17:35:10 +08:00
    我一般是另外处理,例如调用 tinypng 之类的
    cloverzrg2
        4
    cloverzrg2  
       2021-08-15 17:38:40 +08:00
    交给 cdn
    cloverzrg2
        5
    cloverzrg2  
       2021-08-15 17:39:23 +08:00
    用 php,你是打算每个请求压缩一遍图片吗
    hefish
        6
    hefish  
       2021-08-15 17:42:10 +08:00
    搁置这种想法吧。 一般 php 也是调用 gd 或者 imagick 来完成的,这个都嫌不行,那还不如让前端压好了传过来。
    bestmos
        7
    bestmos  
    OP
       2021-08-15 18:40:39 +08:00
    @cloverzrg2 图片小加载的快嘛,用户传的图动辄 2.3M ,存储成本高了
    bestmos
        8
    bestmos  
    OP
       2021-08-15 18:42:05 +08:00
    @X-Force 我试一下,目前是 png 转 jpg,不太理想
    yin1999
        9
    yin1999  
       2021-08-15 21:10:56 +08:00
    楼上的 webp 挺合适啊,用对象存储+serverless 来做图像的存储和转码(转 webp ),然后再套个 CDN
    Xusually
        10
    Xusually  
       2021-08-15 21:51:25 +08:00
    ImageMagick + imagick,使用 webp
    bestmos
        11
    bestmos  
    OP
       2021-08-15 22:04:45 +08:00
    @yin1999 但是 IE 浏览器不兼容,目前想法是对不兼容的浏览器调用原图,兼容的使用 webp 。
    yin1999
        12
    yin1999  
       2021-08-15 22:11:29 +08:00
    @bestmos 那针对 IE 增加 webp 独立的支持如何 https://stackoverflow.com/a/56021203/12349560
    liuxu
        13
    liuxu  
       2021-08-15 23:20:56 +08:00
    你可以试一下 imaginary,基于 libvips,https://imaginary.linux.plus/
    duola
        14
    duola  
       2021-08-16 00:26:25 +08:00
    @liuxu 刚才看了一下,没发现有压缩图片的 API 。
    falcon05
        15
    falcon05  
       2021-08-16 00:50:01 +08:00 via iPhone
    搞一个异步任务队列,转 tinypng
    liuxu
        16
    liuxu  
       2021-08-16 01:05:15 +08:00
    @duola /fip 可以,其他也行,width 和 height 填原图长宽就行,png 有 compression 压缩率,jpg 有 quality

    原图:



    compression 为 6,stripmeta 为 1
    duola
        17
    duola  
       2021-08-16 10:42:25 +08:00
    @liuxu 试了一下,可以用,谢谢!
    abccccabc
        18
    abccccabc  
       2021-08-26 20:33:53 +08:00
    @liuxu imaginary 这个库是 golang 的,有 php 的库吗?
    liuxu
        19
    liuxu  
       2021-08-31 10:44:22 +08:00
    liuxu
        20
    liuxu  
       2021-08-31 10:45:07 +08:00
    @abccccabc 你直接 pecl 装 vips 就行 https://pecl.php.net/package/vips
    abccccabc
        21
    abccccabc  
       2021-08-31 14:12:47 +08:00
    @liuxu 谢谢,我去看看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   985 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 20:28 · PVG 04:28 · LAX 13:28 · JFK 16:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.