gpt4 book ai didi

javascript - 在 Node.js 中使用 GM 生成动画 GIF

转载 作者:数据小太阳 更新时间:2023-10-29 05:29:53 26 4
gpt4 key购买 nike

所以我已经处理这个问题几天了,当我准备好寻求帮助时,我明白了这一点。

我正在尝试使用 graphicsmagic 在基于 node.js 的应用程序中生成动画 gif包。

我生成了几张看起来有点像那样的幻灯片

var slides = [];

for (var i=0; i < 10; i++) {
var slide = gm(200, 200, '#000000')
.fill('#ffffff')
.drawText("Slide #"+ i);

slides.push(slide);
}

我可以将它们转换成流或缓冲区,我可以将它们作为单独的文件保存在硬盘驱动器上,这样就可以了

但我的问题是如何根据这些幻灯片制作动画 gif 完全在内存中,而不将单个文件保存在硬盘上?

我看到 gm有类似 #delay() 的方法和 #page()所以从技术上讲,我可以制定一个像

这样的命令
convert -delay 200 -page slide1.gif -page slide2.gif output.gif

我只是不知道怎么办。我认为它应该看起来像那样

var end_image = gm(200, 200, '#000000');

end_image.delay(500);

for (var i=0; i < slides.length; i++) {
slides[i].toBuffer(function(err, buffer) {
end_image.page(200, 200, ????);
});
}

end_image.write("output.gif");

基本上我不知道如何将缓冲区转换为 gm 的参数

有人做过吗?也许还有其他方法?

PS:我尝试使用 gifencoder也打包,并成功喂养了gm将帧作为帧缓冲到 gifencoder 的 API 中,但输出全部损坏。

最佳答案

这可能不是您正在寻找的答案,但我认为以下内容确实回答了问题标题:“如何在 Node.js 中使用 GM 生成动画 gif”

var Gm = require("gm");

Gm()
.in("image1.jpg")
.in("image2.jpg")
.delay(100)
.resize(600,600)
.write("animated.gif", function(err){
if (err) throw err;
console.log("animated.gif created");
});

关于javascript - 在 Node.js 中使用 GM 生成动画 GIF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23729585/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com