gpt4 book ai didi

php - MongoDB GridFS 存储多种尺寸的图像或使用动态调整大小

转载 作者:可可西里 更新时间:2023-11-01 10:01:31 24 4
gpt4 key购买 nike

在我的网络应用程序中,我使用 MongoDB GridFS 来存储用户上传的图像。

站点的其余部分由 MySQL 管理。

在照片表(在 mysql 中)中,我有三个字段用于存储文件对象的 MongoId。

  • 中等

所以我存储了图像的三个版本。小型、中型和大型。

我的问题是,有时我需要使用比图像“小”版本更小的缩略图(即在小部件框、消息头像等中),或者我需要使用略小的版本中等图像。

所以我的问题是,最好只在 GridFS 系统中存储一张图像,然后在照片表中有一个字段存储 MongoID,然后创建一个动态调整图像大小的脚本(即 http://localhost/image/fetch/ {mongoid }?resize=50

否则,在我的数据库中,我需要 thumbnail_50、thumbnail_100、medium_300、medium_400 等。

采用即时调整大小路线会产生什么影响?这是个好主意还是坏主意?你会怎么做?

谢谢。

最佳答案

动态调整大小会导致服务器上的 CPU 负载比一次调整为各种大小并存储结果要多得多。另一方面,提前调整大小可能会导致更大的数据集存储在 GridFS 中。换句话说,这是一种权衡。

您可以考虑一种混合方法,即动态调整大小但将结果保存回 GridFS,这样您就不需要多次将任何图像调整为给定大小。

您还应该知道,HTML 和 CSS 允许使用各种选项来控制图像的显示大小。例如:

<img src="/path/to/image.jpg" width="50"/>

将导致图像按比例缩放到 50 像素宽(无论如何在大多数现代浏览器中)。您还可以使用 widthmax-width CSS 属性来控制图像大小。

就我自己而言,我对您要存储的图像的体积或文件大小一无所知,我可能会在添加图像时调整大小——换句话说,页面速度和 CPU 负载一次——然后从 GridFS 提供各种尺寸,如果在特定情况下需要稍微不同的尺寸,则使用 max-width 控制屏幕尺寸。

关于php - MongoDB GridFS 存储多种尺寸的图像或使用动态调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516045/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com