1

此代码导致仅将单个图像写入输出(6175710.jpg)。相反,我想要所有三个。我的代码中有什么不正确的。我正在使用节点 gm模块。看我的实现:

  fs.readdir(__dirname + '/../images/master/', function(err,contents) {
    if (err) throw err;

    for (var i = 0; i < contents.length; i++) {
        var source = contents[i];
        console.warn('Source: ', source)
        gm(__dirname + '/../images/master/' + source)
          .resize(1280)
          .crop(1280,720,0,0)
          .toBuffer('jpg',function (err, buffer) {
          if (err) console.warn(err);
            console.warn('Source2: ', source)
            gm(buffer)
            .geometry('+0+0')
            .composite(__dirname + '/../public/images/Header.jpg')
            .write(__dirname + '/../images/ready/' + source, function (err) {
            if (err) {console.warn(err)}
              console.warn('done saving')
              console.warn('Source3: ', source)
          })
            })
    }
});

但是我的控制台显示了这一点:

Source:  2620590.jpg
Source:  4720702.jpg
Source:  6175710.jpg
Source2:  6175710.jpg
Source2:  6175710.jpg
Source2:  6175710.jpg
done saving
Source3:  6175710.jpg
done saving
Source3:  6175710.jpg
done saving
Source3:  6175710.jpg

更新:我使用Filehound库解决了它。

4

0 回答 0