【问题标题】:image in image (overlay image) with gm (GraphicsMagick)图像中的图像(覆盖图像)与 gm (GraphicsMagick)
【发布时间】:2016-05-31 20:22:45
【问题描述】:

我想在我调整大小的图片上添加水印图片(徽标),如下面的代码所示。

谁能帮忙把不透明度为50%的图片放在右下角?

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

function walk(currentDirPath, callback) {
    var fs = require('fs'), path = require('path');
    fs.readdirSync(currentDirPath).forEach(function(name) {
        var filePath = path.join(currentDirPath, name);
        var stat = fs.statSync(filePath);
        if (stat.isFile()) {
            callback(filePath, stat);
        } else if (stat.isDirectory()) {
            walk(filePath, callback);
        }
    });
}


var inputDir = "/Users/USER/Desktop/src/"
var outputDir = "/Users/USER/Desktop/target/"
walk(inputDir, function(filePath, stat) {
    // match filename like IMG_1234.JPG
    var filename = filePath.match(/IMG_\d{4}.JPG/gmi).toString();
    console.log(filename);
    var outputfile = outputDir + filename

    var readStream = fs.createReadStream(filePath);
    gm(readStream, filename)
    .size({bufferStream: true}, function(err, size) {
      this.resize(size.width / 2, size.height / 2)
      this.write(outputfile, function (err) {
        if (!err) console.log('done');
      });
    });

});

【问题讨论】:

    标签: watermark graphicsmagick


    【解决方案1】:

    解决办法如下:

    .draw(['image Over 0,0 0,0 /Users/USER/Desktop/target/nike-global-diversity-logo.png'])
    

    将这行代码放在 gm 调用之后和调整大小之前。

    【讨论】:

    • 不在 aws lambda 中工作,但在本地节点控制台中工作。
    • ^ 您可能需要在运行 AWS linux 的机器上编译一些依赖项(例如 rm -fr ./node_modules && npm install)。您可以在 EC2 实例上轻松完成此操作。
    • @RenanCoelho 欢迎您:D 如果您有任何改进或只是想将自述文件添加到项目中,请继续! 3年后甚至无法阅读我自己的代码:P
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-05
    • 1970-01-01
    相关资源
    最近更新 更多