如何使用 nodejs 获取 gif 图像帧的 base64?
Posted
技术标签:
【中文标题】如何使用 nodejs 获取 gif 图像帧的 base64?【英文标题】:How can I get base64 of a gif image frame with nodejs? 【发布时间】: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 代码。
提前致谢!
【问题讨论】:
【参考方案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);
);
【讨论】:
以上是关于如何使用 nodejs 获取 gif 图像帧的 base64?的主要内容,如果未能解决你的问题,请参考以下文章