在上传时将图像转换为所有尺寸与通过 php 根据要求调整尺寸

converting image to all sizes on upload vs resizing on request via php

所以我为用户提供了一个平台,允许他们上传大量图片。目前,我让我的服务器调整大小并将所有图像单独保存到我的 CDN(因此我可以选择最佳选项以减少用户请求查看它时的加载时间),但就服务器存储而言,这似乎非常浪费。

图像正在转换为 1200px、500px、140px、40px 和 24px 的分辨率。

我想知道的是,仅以 1200 像素保存文件,然后使用某些东西以请求的大小通过 PHP 提供它是否更有效喜欢 ImageMagick?是否会有任何重大的权衡取舍,如果是,是否值得?

我现在在做什么:

https://v1x-3.hbcdn.net/user/filename-500x500.jpg

我可以做的一个例子:

https://v1x-3.hbcdn.net/image.php?type=user&file=filename&resolution=500

干杯。

不,不是,因为:

  1. 您的尺码数量较少

  2. 如果您不使用缓存(仅在第一次请求时生成图像),您可以自己进行 DDOS(图像处理是一个 cpu 受影响的进程)

  3. 如果要使用 Cloudflare 等 CDN 进行 HTTP 缓存,则必须做额外的工作

如果您有很多尺寸的图像,这很有意义,例如,API 支持多个 Andoid/IOS 设备,这意味着 iphone 3 仅支持 320x320 图像,如果您不支持有用户使用这样的设备,您的服务器永远不会创建这样的图像。

建议:

在图像生成过程中,使用 optimization 它可以减小图像大小,但质量损失微乎其微。