我尝试使用node-gd GD包装器进行一些基本的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);
});
});
为什么我在gd.createFromPngPtr
电话上获得空回报?
答案 0 :(得分: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);
});
});