1

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});
    }});
4

0 に答える 0