gpt4 book ai didi

javascript - 如何从 nodejs 中的 phantomjs stdout 读取图像以提供服务?

转载 作者:搜寻专家 更新时间:2023-10-31 22:48:25 24 4
gpt4 key购买 nike

我可能遗漏了一些细节,因为光栅化脚本可以独立运行,但到目前为止我还没有成功从 NodeJS 读取它的输出。

这是 NodeJS 部分:

var http = require('http');
var qs = require('querystring');
var fs = require('fs');
var spawn = require('child_process').spawn;

var SCRIPT = fs.readFileSync('./script.js', { encoding: 'utf8' });

http.createServer(function (request, response) {
var body = '';
request.on('data', function (data) {
body += data;
});
request.on('end', function () {
var postData = qs.parse(body);
var phantomOut = '';
var phantom = spawn('phantomjs');
phantom.stdout.on('data', function (buf) {
phantomOut += buf;
});
phantom.on('exit', function (code) {
response.writeHead(200, {
'Content-Type': 'image/png'
});
response.end(phantomOut);
});
phantom.stdin.setEncoding('utf8');
phantom.stdin.write( SCRIPT.replace('(#imageData)', postData.imageData) );
});
}).listen(1337, '127.0.0.1');

这是由 PhantomJS 执行的“script.js”:

var page = require('webpage').create();
page.content = '<img src="(#imageData)">';
window.setTimeout(function () {
page.render('/dev/stdout', { format: 'png' });
phantom.exit();
}, 1);

我想做的是使用 phantomjs 将 Base64 编码图像渲染为 PNG 到标准输出,在 nodejs 中读取该图像,然后提供它。

我做错了什么?

最佳答案

我注意到您找到了解决方案。为了可能登陆这里的其他人,这里有一个更简单的答案:

幻影:

var base64 = page.renderBase64('PNG');
system.stdout.write(base64);
phantom.exit();

Node (使用 phantomjs-prebuilt):

childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) {
var buf = new Buffer(stdout, 'base64');
fs.writeFile('test.png', buf);
}

关于javascript - 如何从 nodejs 中的 phantomjs stdout 读取图像以提供服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22919485/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com