【发布时间】:2015-11-22 04:01:28
【问题描述】:
我需要使用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');
});
【问题讨论】:
-
你不能像这样同时读取和写入同一个文件;实际上,当您仍在读取文件时,您将覆盖文件的某些部分。最好的办法是写入一个单独的文件,然后在完成后重命名它。
-
@ExplosionPills 这很有道理 :-) 我不太熟悉使用流。如何使用临时文件?
标签: javascript meteor graphicsmagick collectionfs