【发布时间】:2015-11-19 19:19:26
【问题描述】:
我正在使用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答案。然而,这也没有奏效。我不确定我做错了什么。非常感谢任何帮助。
谢谢!
【问题讨论】:
-
当您说“动画实际上并不存在”时,您的意思是它没有动画(即停留在第一帧)还是根本无法打开图像?
-
您的代码看起来像是 node.js 和浏览器代码的混合体(node 中没有
alert,浏览器中也没有fs.writeFile或require)。我不认为 gifshot 目前在节点中工作。这是一个仅限浏览器的库。它可以使用node-canvas,但据我所知,它是does not work with it。如果我登录obj.errorMsg,我会收到“您的浏览器不支持画布元素”。
标签: javascript node.js