php - 在上传时将图像转换为所有大小与通过 php 请求调整大小
问题描述
所以我为用户提供了一个平台,允许他们上传大量图片。目前,我让我的服务器调整大小并将所有图像单独保存到我的CDN(因此我可以选择最佳选项以减少用户请求查看时的加载时间),但在服务器存储方面似乎非常浪费.
图像被转换为 1200 像素、500 像素、140 像素、40 像素和 24 像素的分辨率。
我想知道的是,将文件保存为 1200px,然后通过PHP以请求的大小使用类似的东西提供它会更有效ImageMagick
吗?是否会有任何重大的权衡,如果是这样,是否值得?
我现在在做什么:
我可以做的一个例子:
https://v1x-3.hbcdn.net/image.php?type=user&file=filename&resolution=500
干杯。
解决方案
不,不是,因为:
你有少量尺寸
如果您不使用缓存(仅在第一次请求时生成图像),您可以自己进行 DDOS(图像处理受 CPU 影响)
- 如果要使用 Cloudflare 之类的 CDN 进行 HTTP 缓存,则必须做额外的工作
如果您有很多尺寸的图像,这是有意义的,例如,支持多个 Andoid/IOS 设备的 API,这意味着 iphone 3 仅支持 320x320 图像,如果您没有使用此类设备的用户,您的服务器永远不会创建此类图像。
建议:
在图像生成过程中,使用优化可以减小图像大小,但质量损失难以察觉。
推荐阅读
- visual-studio-code - Visual Studio Code:另一个 Code 实例正在运行但没有响应
- sqlalchemy - 如何解决 sqlalchemy.exc.NoForeignKeysError?
- .net - 支持 Windows 或 .NET 中未知的关键 X509 证书扩展
- node.js - 如何通过机器人获取频道 ID - Discord.js
- c# - 415 将“multipart/form-data”上传到 .Net Core 3.1 API 时不受支持的媒体类型,但该文件可通过中间件方法访问
- c - 如何计算结构中数组元素的数量
- javascript - 遍历选定/活动范围
- python - 如何将 .txt 文件内容导入/复制到 Web 文本框中?
- appium - 机器人框架列表迭代-邮箱地址如何一一添加收件人
- azure - Azure SQL 数据库的成本远高于预期