无法读取属性' setEncoding'未定义的

时间:2016-06-23 04:42:39

标签: node.js imagemagick graphicsmagick

我正在尝试使用imagemagicknode处理一堆图片。我有一个图像文件夹,遍历它们,裁剪,并将庄稼保存到另一个文件夹:

var fs = require('fs')
  , im = require('imagemagick');

var path = '/Users/me/Pictures';
var rs = [[100,100],[200,200],[300,300],[400,400],[500,500],[600,600],[700,700],[800,800],[900,900],[1000,1000],[1100,1100],[1200,1200]];

fs.readdir(path, function(err, items) {
    var counter = 0;
    var start = new Date().getTime();
    for (var i=0; i<items.length; i++) {
        var image = items[i];
        if (image.endsWith('png') || image.endsWith('jpg')) {
            console.log('Processing ' + image);
            for (var r=0; r<rs.length; r++) {
                counter++;
                console.log(counter);
                im.crop({
                    srcPath: path + '/' + image,
                    dstPath: '/Users/me/Pictures/rends/' + c + image + rs[r][0] + 'x' + rs[r][1] + '.jpg',
                    width: rs[r][0],
                    height: rs[r][1],
                    quality: 1
                }, function(err, stdout, stderr){
                    if (err) console.log('error:' + err);
                });
                }
            }
    }
    console.log(counter + ' images processed in ' + (new Date().getTime() - start) + 'milliseconds.');
});

现在问题是,它最初工作并且裁剪~540张图像(一两次或多或少)然后失败并出现以下错误:

/Users/me/my_stuff/node_modules/imagemagick/imagemagick.js:76
  child.stdout.setEncoding(options.encoding);
              ^

TypeError: Cannot read property 'setEncoding' of undefined
    at exec2 (/Users/me/my_stuff/node_modules/imagemagick/imagemagick.js:76:15)
    at Object.exports.identify (/Users/me/my_stuff/node_modules/imagemagick/imagemagick.js:149:14)
    at Object.exports.crop (/Users/me/my_stuff/node_modules/imagemagick/imagemagick.js:292:11)
    at /Users/me/my_stuff/node/im.js:18:8
    at FSReqWrap.oncomplete (fs.js:117:15)

P.S。我试过了graphicsmagick,它也以一种非常类似的方式失败了。

非常感谢任何帮助。

0 个答案:

没有答案