首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以使用node-gm在内存中调整图像的大小吗?还是需要先保存它?

我可以使用node-gm在内存中调整图像的大小吗?还是需要先保存它?
EN

Stack Overflow用户
提问于 2013-06-19 16:34:11
回答 1查看 2.5K关注 0票数 2

我允许用户上传头像,但我想在上传时调整它们的大小。现在,gm似乎让我先将文件保存到磁盘,然后再调整大小。当传入的请求进来时,有没有可能只是调整它的大小?

如下所示:

代码语言:javascript
复制
 var readStream = fs.createReadStream(req.files['profile-picture']['path']);

 gm(req.files['profile-picture']['path'], 'img.jpg')
 .write('/path/to/directory/img.jpg', function (err) {
   if (!err) console.log('done');
 });
EN

回答 1

Stack Overflow用户

发布于 2013-06-19 18:00:02

您只需通过gm管道传输一个流,而无需将文件保存到光盘!您甚至可以一个接一个地执行几个操作,因为gm函数是可链接的(在我的示例中,我调整了图像的大小,并从中间裁剪图像(因此是重力函数))。

代码语言:javascript
复制
gm(req.files['profile-picture']['path'], 'img.jpg')
  .resize("100^", "100^")
  .gravity('Center')
  .crop(100, 100)
  .stream(function (err, stdout, stderr) {
     // do whatever you want with your output stream (stdout) here
  });
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17186522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档