首页 > 解决方案 > 在上传时将图像转换为所有大小与通过 php 请求调整大小

问题描述

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

图像被转换为​​ 1200 像素、500 像素、140 像素、40 像素和 24 像素的分辨率。

我想知道的是,将文件保存为 1200px,然后通过PHP以请求的大小使用类似的东西提供它会更有效ImageMagick吗?是否会有任何重大的权衡,如果是这样,是否值得?

我现在在做什么:

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

我可以做的一个例子:

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

干杯。

标签: phpimage-processingimage-resizing

解决方案


不,不是,因为:

  1. 你有少量尺寸

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

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

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

建议:

在图像生成过程中,使用优化可以减小图像大小,但质量损失难以察觉。


推荐阅读