我正在尝试使用 imagemin 缓冲区函数: https://github.com/imagemin/imagemin
file.on('data', function (d) {
fileBuffer = Buffer.concat([fileBuffer, d]);
}).on('end', function () {
imagemin.buffer(fileBuffer, {
plugins: [
imageminMozjpeg(),
imageminPngquant({quality: '80'})
]
}).then(function (file) {
console.log(file);
}, function (err) {
console.dir(err);
});
由于某种原因它不起作用。有谁知道为什么吗?
最佳答案
imagemin.buffer 函数工作正常,但 end 事件可能会出现问题。我相信你的函数从未被调用过。
下面您可以看到经过 bluebird 修改的示例。
const imagemin = require('imagemin');
const Promise = require('bluebird');
Promise.promisify(fs.readFile)('./screenshot.png')
.then(buffer => {
return imagemin.buffer(buffer, {
plugins: [
imageminMozjpeg(),
imageminPngquant({quality: '80'})
]
})
})
.then(outBuffer => {
console.log(outBuffer.length);
}).catch(err => {
console.log(err)
})
关于node.js - 如何使用imagemin缓冲区函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41496650/