You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Node.js获取GIF图片第一帧的Base64编码

你可以通过收集gif-frames返回的图片流数据,拼接为Buffer后直接转Base64编码,无需写入磁盘,实现代码如下:

const gifFrames = require('gif-frames');

gifFrames({ url: 'https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_%28large%29.gif', frames: 0 })
  .then(function (frameData) {
    const chunks = [];
    const imageStream = frameData[0].getImage();

    // 收集流的所有数据块
    imageStream.on('data', (chunk) => chunks.push(chunk));
    // 流读取完成后转Base64
    imageStream.on('end', () => {
      const buffer = Buffer.concat(chunks);
      // 纯Base64编码
      const base64 = buffer.toString('base64');
      console.log(base64);
      // 如果需要用于图片标签的Data URI格式,用下面这行
      // const dataUri = `data:image/jpeg;base64,${base64}`;
    });

    // 监听流错误
    imageStream.on('error', (err) => {
      console.error('读取图片流失败:', err);
    });
});
  • 上述代码直接在内存中处理图片流,不会产生本地临时文件
  • 若获取到的Base64需要直接在前端图片标签中渲染,可拼接data:image/jpeg;base64,前缀使用

内容的提问来源于stack exchange,提问作者Patrik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:45:03