返回图像而不保存在服务器上(node.js)

时间:2015-07-31 08:08:36

标签: node.js image graphicsmagick

我在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中。

2 个答案:

答案 0 :(得分:1)

这种方法解决了这个问题:

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

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

感谢所有人!

答案 1 :(得分:0)

我没有使用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! ');
    });
};