2017-07-04 4 views
0

私はnode-gd GDラッパーを使って基本的なPNG操作をしようとしています。Base64はnode-gdを使ってpngバッファをエンコードします

私が好きなの:

  • を開き、このbase64文字列

私のテストとして

  • エンコードマージ結果バッファをpngのオーバーレイでPNG形式PNG画像
  • マージコード:

    gd.openPng('./my_image.png', function(err, img) { 
        img.saveAlpha(1); 
        gd.openPng('./my_overlay.png', function(err, overlay) { 
         overlay.copy(img, 0, 0, 0, 0, overlay.width, overlay.height); 
    
         let buff = gd.createFromPngPtr(new Buffer(img.pngPtr())); /* this returns null? */ 
         console.log(buff); /* prints null as per previous line */ 
    
         let b64 = buff.toString('base64'); /* error: Cannot read property 'toString' of null */ 
         console.log(b64);   
        }); 
    }); 
    

    m gd.createFromPngPtrコールでヌルリターンを取得していますか?

  • 答えて

    1

    はそうのような解決:

    gd.openPng('./di.png', function(err, img) { 
        img.saveAlpha(1); 
        gd.openPng('./flaming.png', function(err, overlay) { 
         overlay.copy(img, 0, 0, 0, 0, overlay.width, overlay.height); 
         var buff = Buffer.from(img.pngPtr(), 'binary');//, 'latin1'); 
         var b64 = buff.toString('base64'); 
         console.log(b64); 
        }); 
    }); 
    
    関連する問題