#node.js #base64 #frame #gif #animated-gif
Вопрос:
Я хотел бы получить код base64 изображения gif из Интернета. Base64 должен быть сгенерирован из первого кадра gif-изображения.
Я могу сохранить первый кадр gif-изображения со следующим кодом в nodejs:
var gifFrames = require('gif-frames'); var fs = require('fs'); gifFrames({ url: 'https://upload.wikimedia.org/wikipedia/commons/2/2c/Rotating_earth_(large).gif', frames: 0 }).then(function (frameData) { frameData[0].getImage().pipe(fs.createWriteStream('firstframe.jpg')); });
Теперь мне нужен код base64 этого сохраненного изображения jpg. В идеале изображение не будет храниться на диске, а просто напечатает код base64.
Заранее спасибо!
Ответ №1:
Так 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_(large).gif', frames: 0 }).then(function (frameData) { var stream = frameData[0].getImage(), b64 = stream.read().toString('base64'); console.log(b64); });