0

我可以通过 skipper 上传图像,然后用清晰的方法调整它们的大小,但这对我来说似乎效率低下,因为 skipper 文档概述了文件流可以在文件上传之前用于图像缩略图。

我可以使用Sharp模块即时调整图像大小吗?如果您提供一些示例,我将不胜感激。先感谢您。

4

1 回答 1

0

这个答案和这篇博文的帮助下,我终于想出了一个解决方案:

  upload: function(req, res) {
    var sharp = require('sharp');
    var Writable = require('stream').Writable;

    var receiver = new Writable({objectMode: true});
    receiver._write = function(file, enc, cb) {
      var output = require('fs').createWriteStream('./assets/avatar/' + file.fd);

      var resizeTransform = sharp().resize(100);
      file.pipe(resizeTransform).pipe(output);

      cb();
    };

    req.file('avatar').upload(receiver, (err, files) => {
      if (err) {return res.serverError(err);}
      return res.ok();
    });
  }
于 2020-05-18T23:11:08.953 回答