1

を使用して画像を操作する必要がありgraphicsmagickます。

私の FSCollection は次のようになります。

Images = new FS.Collection("media", {
    stores: [
        new FS.Store.FileSystem("anything"),
        new FS.Store.FileSystem("something")
    ],
});

私の問題は、writeStream が readStream と同じであるべきだということです。これは空の結果につながるため、これは機能しません。

var read  = file.createReadStream('anything'),
    write = file.createWriteStream('anything');

gm(read)
    .crop(100,100,10,10)
.stream()
.on('end',function(){ console.log('done'); })
.on('error',function(err){ console.warn(err); })
.pipe(write, function (error) {
    if (error) console.log(error);
    else console.log('ok');
});
4

1 に答える 1

1

同じファイルの読み取りと書き込みを同時に行うことはできません。これは、コンテンツを読み取ろうとすると同時にコンテンツを上書きすることになるためです。別のファイルに書き込み、その名前を元のファイルに変更します。

var read  = file.createReadStream('anything'),
    write = file.createWriteStream('anything-writeTo');

gm(read)
    .crop(100,100,10,10)
.stream()
.on('error',function(err){ console.warn(err); })
.pipe(write, function (error) {
    if (error) console.log(error);
    else console.log('ok');
})
.on('end',function(){
    file.rename("anything-writeTo", "anything", function (err) {
        if (err) console.error(err);
        else console.log('rename complete');
    });
})
于 2015-11-22T20:32:59.853 に答える