gpt4 book ai didi

node.js - 我可以使用 sharp 和 multer 来调整图像大小并在一次操作中保存到磁盘吗?

转载 作者:行者123 更新时间:2023-12-05 07:27:52 25 4
gpt4 key购买 nike

我在理解 sharp 和 multer 之间的关系时遇到了一些问题。

目前我正在使用 multer 从请求中提取图像并将其保存到磁盘。效果很好:

const upload = Multer({
dest: './companyImages',
fileFilter,
limits: {
fileSize: MAX_SIZE
}
})

router
.route('/images')
.post(passportJWT, upload.array('files'), ImageUploadController.saveImage)

我可以看到如何使用 sharp 从磁盘或流中读取文件并调整其大小,将其作为第二个文件保存到磁盘。然后我会使用 fs.unlink 删除第一个文件。

sharp('./companyImages/0d928a1a10f462f33b8fed1ea1a20eec.png')
.resize(300, 200)
.toFile('output.jpg', function(err) {
// output.jpg is a 300 pixels wide and 200 pixels high image
// containing a scaled and cropped version of input.jpg
});

我更愿意将 multer 的输出传递给 sharp,然后用 sharp 转到磁盘。

问题 - 我还没有确定如何将 multer 的输出定向到磁盘上目标以外的任何地方。我正在寻找想法和示例,提前致谢!

最佳答案

multer 的插件可以在 here 中为您完成但不要使用 sharp 来调整大小。这是一个例子

const multer = require('multer');
const MulterResizer = require('multer-resizer');
const resizer = new MulterResizer({
multer: multer({storage: multer.diskStorage({destination: './'})}),
tasks: [
{
resize: {
width: 1920,
height: 1080,
suffix: 'resized-big'
}
},
{
resize: {
width: 100,
height: 100,
suffix: 'resized-small'
}
},
{
cover: {
width: 160,
height: 112,
suffix: 'thumbnail'
}
}
]
});

router.post('/', auth.ensureAuthentication, resizer.single('file'), function(req, res, next) {
// All multer-resizer tasks were completed
});

关于node.js - 我可以使用 sharp 和 multer 来调整图像大小并在一次操作中保存到磁盘吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53717616/

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