存储高质量图像的最佳方法是什么?

时间:2020-05-03 04:24:50

标签: angular mongodb image storage

我当前正在使用mongo数据库,在其中以base 64格式存储一些非常大的图像,即:data:image / jpeg; base64,/ 9j / 4AAQSkZJRgABAQAAAQA ...等数据。我遇到的问题是,由于这些图像很大,因此会引起一些查询,例如查找所有内容,只需要大约11秒即可返回集合中的约30个文档。我相信这是因为基本64位图像字符串太大了。

我已经尝试压缩图像,但是如果这样做,它们将失去质量。我尝试过调整尺寸,这也会在图像在屏幕上放大一点时导致质量下降。我也尝试过裁剪图像,但是由于我不想裁剪太多,因此并不能减小尺寸。

在我的mongo数据库中,我还在文档ID和一个字段上设置了一些索引。

有什么方法可以存储高质量图像并保持质量,同时减少查询时间?

1 个答案:

答案 0 :(得分:0)

我最好的建议是将文件本地存储在托管服务器上,并在数据库中存储文件名和用户ID /文件路径。

如果您真的想节省更多,我将执行以下操作:如果这些是图像,则用户可以上传(例如)4000X1500大小的图像。您可以使用PHP(或任何其他服务器端语言)创建像素较少的文件副本,从而减小其大小。它将节省带宽和空间/加载时间(同样适用于SEO)。因此,只需复制较小尺寸的原始版本即可。需要注意的是,PHP允许您在将图像复制到较小尺寸时也更改质量(在1-100%之间)。