【问题标题】:Base64 encode png buffer using node-gd使用 node-gd 对 png 缓冲区进行 Base64 编码
【发布时间】:2017-12-08 00:38:19
【问题描述】:

我正在尝试使用node-gd GD 包装器进行一些基本的 PNG 操作。

我想:

  • 打开一个 png 图片
  • 将此 png 与覆盖 png 合并
  • 将合并的结果缓冲区编码为 base64 字符串

我的测试代码:

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 调用时得到一个空返回?

【问题讨论】:

    标签: javascript node.js png gd


    【解决方案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);
        }); 
    });
    

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 2012-12-20
      • 1970-01-01
      • 2014-12-30
      • 2010-12-21
      • 2014-04-16
      • 2019-06-15
      • 1970-01-01
      相关资源
      最近更新 更多