【问题标题】:Return image without saving on server (node.js)返回图像而不保存在服务器上(node.js)
【发布时间】:2015-07-31 08:08:36
【问题描述】:

我在 Node.js 上的 GraphicsMagick 中创建了一个图像,我想在不保存在服务器上的情况下将其返回。我该怎么做?

我有这个代码:

var fs = require('fs'); var gm = require('gm');

  var captchaImg = gm.(650, 200, "#ddff99f3");

  for(var i = 0; i < 2; i ++){
      for(var j = 0; j < 5; j ++){
        ...
      }
  }

      .write("assets/images/c.jpg", function (err) {
          console.log(err);
      });

Write() 在服务器上创建文件。我无法理解如何返回 img 而不将其保存在文件中...例如在 base64 中。

【问题讨论】:

  • 您尝试过的一些代码会有所帮助。我们不会为您编写所有内容...
  • 把它放在问题上,编辑它。

标签: node.js image graphicsmagick


【解决方案1】:

这个方法解决了问题:

captchaImg.toBuffer(function (err, buffer) {
    if (err) console.log(err);
    else console.log('done!');

    console.log(buffer.toString('base64'));
});

谢谢大家!

【讨论】:

    【解决方案2】:

    我没有使用 GraphicsMagick,但是写回复怎么样?

    .write(response, function (err) {
          console.log(err);
      });
    

    如果您使用快递。也许是这样的。

    exports.index = function(req, res){
        gm('/path/to/image.jpg')
        .resize(353, 257)
        .autoOrient()
        .write(res, function (err) {
          if (!err) console.log(' hooray! ');
        });
    };
    

    【讨论】:

    • hmm... 链接下面的代码似乎是为了响应而写的,不是吗? aheckmann.github.io/gm
    • 是的。但似乎它不适用于响应......或者我什么都不明白。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-15
    • 2011-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多