0
在这里,我已经在Node.Js上进行子进程中的图像处理。将缓冲区传递给ChildProcess Node.js
正如你将看到我拿那个文件image.jpg
并希望将其写回hello.jpg
在子进程:
var node = require('child_process').spawn('node',['-i']);
var fs = require('fs');
node.stdout.on('data',function(data) {
var fs = require('fs');
var gm = require('gm').subClass({ imageMagick: true });
gm(data)
.resize(500, 500)
.toBuffer("jpg", function(err, buffer) {
if (err) {
console.log(err);
}else{
fs.writeFile("hello.jpg", buffer);
}
});
});
var buffer = fs.readFileSync(__dirname + "/image.jpg");
node.stdin.write(buffer);
然而,当我运行这个文件,我得到这个错误:
[错误:流产生空缓冲区]
对我来说,好像缓冲区没有正确传递到子进程? 我错了什么? 如何在子任务中运行图像处理?对我来说,重要的是它不从子进程中的文件中读取。因为我想再次读取一个文件,然后将缓冲区发送到进行图像转换的几个子进程。谢谢!
'gm'已经在子进程中做了(异步) – befzz
嗨@befzz,这很好,请你给我提供一个链接,它说这个吗?并把它写成答案?谢谢! –
但它不是异步的权利? –