将图像上传到SailsJS(通过Skipper)并在播放时锐化调整大小

问题描述 投票:0回答:1

我可以通过船长上传图像,然后以锐利的方式调整它们的大小,但是对我来说似乎效率不高,因为船长文档概述了文件流可以在文件上传之前用于图像缩略图。

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

node.js sails.js node-streams sharp sails-skipper
1个回答
0
投票

借助this答案和this博客文章,我终于想出了一个解决方案:

  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();
    });
  }
© www.soinside.com 2019 - 2024. All rights reserved.