我正在使用Gifshot生成动画。我正在成功生成一个“文件”。但是,似乎编码已关闭。生成的图像是通过以下代码生成的:
var images = [
'http://i.imgur.com/2OO33vX.jpg',
'http://i.imgur.com/qOwVaSN.png',
'http://i.imgur.com/Vo5mFZJ.gif'
];
var gifshot = require('gifshot');
gifshot.createGIF(
{ 'images':images, 'numFrames': images.length },
function(obj) {
if (!obj.error) {
fs.writeFile(
'./animation.gif', obj.image, 'base64',
function(err) {
if (err) {
alert(err);
} else {
alert('Should be all good');
}
}
);
}
}
);
当上面的代码运行时,animation.gif会生成到我的本地文件系统(它会生成一个108kb的文件)。但是,当我打开它时,动画实际上并不存在。我不确定我做错了什么。我知道Gifshot会返回Base 64图像。我认为这是个问题。所以,我尝试整合找到here的SO答案。但是,这也不起作用。我不确定我做错了什么。非常感谢任何帮助。
谢谢!
答案 0 :(得分:1)
尝试使用模块base64image-to-file
var images = [
'http://i.imgur.com/2OO33vX.jpg',
'http://i.imgur.com/qOwVaSN.png',
'http://i.imgur.com/Vo5mFZJ.gif'
];
var gifshot = require('gifshot');
var base64ImageToFile = require('base64image-to-file'); //// new
gifshot.createGIF(
{ 'images':images, 'numFrames': images.length },
function(obj) {
if (!obj.error) {
base64ImageToFile(obj.image, '.', 'animation.gif', //// new
function(err) {
if (err) {
alert(err);
} else {
alert('Should be all good');
}
}
);
}
}
);