【问题标题】:How can I get base64 of a gif image frame with nodejs?如何使用 nodejs 获取 gif 图像帧的 base64?
【发布时间】:2021-12-05 10:49:42
【问题描述】:

我想从互联网上获取 gif 图像的 base64 代码。 base64 应该是从 gif 图片的第一帧生成的。

我可以在 nodejs 中使用以下代码存储 gif 图像的第一帧:

var gifFrames = require('gif-frames');
var fs = require('fs');
 
gifFrames({ url: 'https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif', frames: 0 }).then(function (frameData) {
  frameData[0].getImage().pipe(fs.createWriteStream('firstframe.jpg'));
});

我现在需要这个存储的 jpg 图像的 base64 代码。 理想情况下,图像不会存储在磁盘上,只打印 base64 代码。

提前致谢!

【问题讨论】:

    标签: node.js base64 frame gif animated-gif


    【解决方案1】:

    由于getImage() 返回ContentStream,您只需读取Buffer 并将其转换为Base64。有点像这样:

    var gifFrames = require('gif-frames');
    var fs = require('fs');
    
    gifFrames({
        url: 'https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif',
        frames: 0
    }).then(function (frameData) {
        var stream = frameData[0].getImage(),
        b64 = stream.read().toString('base64');
    
        console.log(b64);
    });
    

    【讨论】:

      猜你喜欢
      • 2014-12-01
      • 2021-01-26
      • 2019-08-15
      • 2010-10-31
      • 2021-11-19
      • 2021-09-25
      • 2019-07-15
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多