【问题标题】:Express js multiple operations gm (GraphicsMagick) moduleExpress js 多重操作 gm (GraphicsMagick) 模块
【发布时间】:2016-06-09 21:28:57
【问题描述】:

将 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;

【问题讨论】:

    标签: node.js express graphicsmagick


    【解决方案1】:

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

    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
                });
    
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-07
      • 1970-01-01
      • 2020-12-10
      • 2016-03-02
      • 1970-01-01
      相关资源
      最近更新 更多