Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Express js多操作gm(GraphicsMagick)模块_Node.js_Express_Graphicsmagick - Fatal编程技术网

Node.js Express js多操作gm(GraphicsMagick)模块

Node.js Express js多操作gm(GraphicsMagick)模块,node.js,express,graphicsmagick,Node.js,Express,Graphicsmagick,将Expressjs与gm(GraphicsMagick)模块一起使用 当前(参见代码)操作#1和#2单独执行时工作正常,但它们不能一起工作(如下所示) 我想把这两个操作合并在一个声明中,有什么建议吗 var express = require('express'); var router = express.Router(); var gm = require('gm'); // GraphicsMagick router.get('/', function(req, res) {

将Expressjs与gm(GraphicsMagick)模块一起使用

当前(参见代码)操作#1和#2单独执行时工作正常,但它们不能一起工作(如下所示)

我想把这两个操作合并在一个声明中,有什么建议吗

var express = require('express');
var router = express.Router();
var gm = require('gm'); // GraphicsMagick

router.get('/', function(req, res) {

    gm('image.png') 
        // Operation #1
        .composite('topimage.png')
        .geometry('+200+200')

        // Operation #2
        .drawText(5, 20, 'my text')
        .fontSize(20)
        .font(__dirname + 'fonts/MyFont.TTF')

        .stream(function streamOut (err, stdout, stderr) {
            stdout.pipe(res); //pipe to response
        });

});

module.exports = router;

经过一段时间的努力,我发现gm()可以将流作为输入参数。下面的代码解决了我的问题

var express = require('express'); 
var router = express.Router(); 
var gm = require('gm'); // GraphicsMagick

router.get('/', function(req, res) {

   gm(gm('image.png') 
                 // Operation #1
            .composite('topimage.png')
            .geometry('+200+200')
            .stream())

                 // Operation #2
            .drawText(5, 20, 'my text')
            .fontSize(20)
            .font(__dirname + 'fonts/MyFont.TTF')

            .stream(function streamOut (err, stdout, stderr) {
                stdout.pipe(res); //pipe to response
            });

    });