gpt4 book ai didi

javascript - 是否有任何选项可以减小图像大小并在具有多种功能的nodejs中调整图像大小?

转载 作者:搜寻专家 更新时间:2023-10-31 23:51:30 26 4
gpt4 key购买 nike

var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})

var upload = multer({ storage: storage })

我需要调整图像大小并将图像大小压缩到最小并上传到目录中。有什么帮助吗?

最佳答案

您可以为 multer 创建一个定制的存储引擎。

根据official documentation ,自定义存储引擎 是公开两个函数的类:_handleFile_removeFile

这是创建自定义存储引擎的官方模板 (Link):

var fs = require('fs')

function getDestination (req, file, cb) {
cb(null, '/dev/null')
}

function MyCustomStorage (opts) {
this.getDestination = (opts.destination || getDestination)
}

MyCustomStorage.prototype._handleFile = function _handleFile (req, file, cb) {
this.getDestination(req, file, function (err, path) {
if (err) return cb(err)

var outStream = fs.createWriteStream(path)

file.stream.pipe(outStream)
outStream.on('error', cb)
outStream.on('finish', function () {
cb(null, {
path: path,
size: outStream.bytesWritten
})
})
})
}

MyCustomStorage.prototype._removeFile = function _removeFile (req, file, cb) {
fs.unlink(file.path, cb)
}

module.exports = function (opts) {
return new MyCustomStorage(opts)
}

您可以在将图像保存到磁盘之前使用 _handleFile 函数减小图像大小。

为了减小图像大小,您可以选择各种 npm 模块来完成这项工作。一些值得检查的模块是 Sharp , Light-weight image processorGraphicsMagick for node .

关于javascript - 是否有任何选项可以减小图像大小并在具有多种功能的nodejs中调整图像大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45237886/

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