2017-07-04 23 views
0

Ich versuche, einige grundlegende PNG-Manipulation mit der node-gd GD Wrapper zu tun.Base64 kodieren Png-Puffer mit Node-GD

Ich möchte:

  • Öffnen Sie ein PNG-Bild
  • Merge dies mit einem Overlay png png
  • Encode das fusionierte Ergebnispuffer als base64 String

Mein Test code:

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

Warum? m bekomme ich eine null Rückkehr auf den gd.createFromPngPtr Anruf?

Antwort

1

wie so gelöst:

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); 
    }); 
}); 
Verwandte Themen