我在 node.js 中使用 graphicsmagick
我要做的就是创建图形服务器端并将其作为png图像客户端吐出,例如:
socket.emit('my_image',{'buffer':buffer});
然后我可以添加 'data:image/png;base64,'+buffer
我设法保存了我用矩形创建的图像,但保存需要很长时间!!
我不想保存图像,因为这似乎需要很长时间,我真的不需要保留这个图像,它只需要在服务器端完成。
我的问题是我没有掌握正确使用流/缓冲区...
gm = require('gm');
require('gm-buffer');
var image=gm(37,37,"#FFF");
for(var r = 0; r < cells.length ; ++r){
var row = cells[r];
for(var c = 0; c <= row.length ; ++c){
var fill= row[c] ? '#000' : '#fff';
image.drawRectangle((c-num)*num,(r)*num,(c)*num,(r+num)*num).fill(fill)
//image.buffer(function(err,buf){console.log(buf);});
//.stream('png')
//.pipe(writeStream);
//console.dir(image);
}}
/*image.toBuffer(function(err,buffer){
if(err){console.log(err);}else{
socket.emit('my_image',{'buffer':buffer});
console.dir(buffer);//<buffer > ???
}
});*/
//
//this is all i can get to work but its dead slow (takes nearly 5 minutes!?)
//
image.write('/home/engine/public_html/test.png',function(err){
if(err){console.log(err);}else{
//socket.emit('my_image',{'img':image});
}});