此代码仅导致将单个图像写入输出(6175710.jpg)。相反,我想要三个。我的代码中有什么不对。我正在使用node 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 lib解决了它。