我正在尝试通过gridfs-stream
(https://github.com/aheckmann/gridfs-stream)读取 GridFS 文件,将其旋转 90°gm
并将其存储为新的 GridFS 文件。
我的结果看起来很“不时尚”......所以我正在寻求帮助来优化这个小代码片段......
这段代码的第二件事:我需要一种“开关”。此代码对图像进行旋转操作。但我需要传递一个参数来进行旋转、调整大小或其他操作。我该如何整合它?
import Grid from 'gridfs-stream'
import { MongoInternals } from 'meteor/mongo'
const id = '12345'
const gfs = Grid(
MongoInternals.defaultRemoteCollectionDriver().mongo.db,
MongoInternals.NpmModule
)
const readStream = gfs.createReadStream({ _id: id })
readStream.on('error', function (err) {
console.error('Could not read stream', err)
throw Meteor.Error(err)
})
gm(readStream)
.rotate('#ffffff', 90)
.stream(function (err, stdout, stderr) {
if (err) {
console.error('Could not write stream')
throw Meteor.Error(err)
}
const writeStream = gfs.createWriteStream()
const newFileId = writeStream.id
writeStream.on('finish',
function () {
console.log('New file created with ID ' + newFileId)
}
)
stdout.pipe(writeStream)
})