nodejs:将pngjsstream转换为base64
我有一个PNG对象,我使用node-png创build,根据文档,它是一个“ 可读写的stream ”。
我想将PNG对象转换为base64,并通过socket.io发送给客户端,我将这个string放在一个图片src中。
我已经尝试了很多东西,但似乎将stream转换为string并不重要。
我怎样才能做到这一点?
请注意,数据是在节点内而不是从文件系统创build的。
谢谢!
谢谢您的帮助。 在这里,我为未来的读者做了什么( 这也有帮助 ):
png.pack(); var chunks = []; png.on('data', function(chunk) { chunks.push(chunk); console.log('chunk:', chunk.length); }); png.on('end', function() { var result = Buffer.concat(chunks); console.log('final result:', result.length); io.sockets.emit('image', result.toString('base64')); });
你不想将stream转换成string,但它的可读块:
stream.on('readable', function() { var string = stream.read().toString('base64'); // send through websocket });
您也可以通过stream来完成整个数据的操作:
var data = ''; stream.on('readable', function() { data += stream.read().toString('base64'); }); stream.on('end', function() { console.log(data); });
取决于客户是否要求完整的png图片可用,或者是否有单块。
但是,如果你有兴趣如何在一个实际的例子看起来像(通过HTML5拖放上传图像),你可以结帐使者 。
- 在Azure网站中,node.js可用的端口是什么?
- 在Express服务器上包含并自动编译Sass
- Vagrant上的nodejs – 无法从外部加载页面
- waterlock fb auth – 注册authcode
- 在Windows中的npm安装问题
- ChromeOptions使用Selenium ChromeDriver for node.js导致引用错误
- node.js zombie.js多个浏览器错误
- 在执行http.get请求时,为什么response.on(“data”,console.log)工作,response.on(“data”,myarray.push)不起作用?
- 对于某些Windows用户,“grunt”不被识别为内部或外部命令