node.js - 如何使用 nodejs 获取 gif 图像帧的 base64?
问题描述
我想从互联网上获取 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 代码。
提前致谢!
解决方案
由于getImage()
返回 a 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);
});
推荐阅读
- llvm - 检测 BasicBlock 是否在循环中
- c - 关于简单c编程代码的几个问题
- angularjs - 捆绑包中的重复文件和文件夹
- python - Python - 从没有熊猫的 excel 中读取并插入 Postgre
- swift - 将 Optional(Set(["6", "14"])) 转换为 [String]
- python - 如何从 matplotlib.figure.Figure 的列表中保存 matplotlib 图?
- sql - Sybase Iq 数据库中的空值大小
- coq - 文章同伦类型理论和 Voevodsky 的单价基础的 coq 代码
- r - 使用 dplyr 的 transmute_all 将列值替换为列名
- javascript - 从图像中获取日期