way*_*ure 3 javascript encoding stream animated-gif node.js
我正在尝试将 5 个特定的 JPG 文件名通过管道传输到动画 GIF 中。我浏览了几个库并找到了Gif-Encoder。我不太擅长流。我似乎无法弄清楚如何将 RGB 结果从JPEG 解码器传输到编码器的 addFrame() 方法中。
function createAnimatedGif(jpgPaths, animatedGifPath) {
let encoder = new GifEncoder(1280, 720);
let writeStream = fs.createWriteStream(animatedGifPath);
encoder.pipe(writeStream);
encoder.writeHeader();
jpgPaths.forEach(filePath => {
fs.createReadStream(filePath)
.pipe(new JPEGDecoder)
//.pipe(encoder);
//.pipe(pixels => encoder.addFrame(pixels));
});
encoder.finish();
}
Run Code Online (Sandbox Code Playgroud)
小智 6
必须使用读取流吗?我使用“get-pixels”模块取得了一些成功。
var getPixels = require('get-pixels')
var GifEncoder = require('gif-encoder');
var gif = new GifEncoder(1280, 720);
var file = require('fs').createWriteStream('img.gif');
var pics = ['./pics/1.jpg', './pics/2.jpg', './pics/3.jpg'];
gif.pipe(file);
gif.setQuality(20);
gif.setDelay(1000);
gif.writeHeader();
var addToGif = function(images, counter = 0) {
getPixels(images[counter], function(err, pixels) {
gif.addFrame(pixels.data);
gif.read();
if (counter === images.length - 1) {
gif.finish();
} else {
addToGif(images, ++counter);
}
})
}
addToGif(pics);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3804 次 |
最近记录: |