Nik*_*lay 6 javascript imagemagick image-processing node.js graphicsmagick
所以我已经解决了这个问题几天,并且在我准备寻求帮助时明白了.
我正在尝试使用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);
}
Run Code Online (Sandbox Code Playgroud)
我可以将它们转换为流或缓冲区,我可以将它们保存为硬盘上的单个文件,并且有点工作
但我的问题是如何在内存中完全从这些幻灯片中制作动画gif ,而不将各个文件保存在硬盘上?
我看到gm有类似的方法#delay()和#page()等在技术上我可以精心像这样的命令
convert -delay 200 -page slide1.gif -page slide2.gif output.gif
Run Code Online (Sandbox Code Playgroud)
我只是不知道如何.我认为它看起来应该是那样的
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");
Run Code Online (Sandbox Code Playgroud)
基本上我不知道如何将缓冲区转换为参数 gm
有没有人以前做过?也许有另一种方式?
PS:我也尝试使用这个gifencoder包,并成功地将gm缓冲区作为帧输入到gifencoder的API中,但输出都被破坏了.
| 归档时间: |
|
| 查看次数: |
6418 次 |
| 最近记录: |