gpt4 book ai didi

Mongodb Gridfs 减少图像大小

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

我正在使用 node.js 和 mongodb 开发类似 facebook 的应用程序。我已经能够成功地将图像文件上传到 GridFS 并使用 node-mongodb-native 驱动程序 wiki 的精彩示例检索它们。图像的最大使用将作为缩略图,所以我从各种 SO 帖子中了解到,同时保留大尺寸版本和小尺寸版本将是最快的解决方案。

所以我的问题是如何创建同一图像的不同大小的副本。许多这样的问题已经被问到像MongoDB GridFS store multiple sizes of image or use on the fly resizing这样的问题。但是没有人真正回答如何更改大小。

在 mongo shell 中,我可以在 fs.chunks 集合中看到原始图像的二进制数据,肯定必须有某种方法来操作此二进制数据以获得较小尺寸的图像,然后我可以将其另存为单独的图像GridFS block 或其他方式。请帮忙,谢谢。

最佳答案

要减小图像的大小,您必须在将其保存到 GridFS 之前对其进行缩放。 GridFS 与缩放图像的过程无关。

不过,如果我没记错的话,可以把GridFS的二进制数据做成一个数据流。 node-gd是一个用于缩放图像(除其他外)的库,据我所知它可以处理流。

如果您可以直接使用上传的文件(在将它们保存到 GridFS 之前),node-imagemagick提供了一个非常简单的调整大小功能:

/* with express */
app.post('/image', function(req, res) {
file = req.files[0];
(require 'imagemagick')
.resize({
srcPath: file.path,
dstPath: file.path + '-smaller.png',
width: 50}, function(err, stdout, stderr) {
/* You now have two files: file.path is the original, file.path + '-smaller.png' is the thumbnail. */
});
});

关于Mongodb Gridfs 减少图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414633/

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