Tag: gif

使用node-quickthumb创buildGIF缩略图

我正在尝试创buildGIF图像的缩略图。 我search了所有可能的堆栈溢出链接,但是,我没有得到确切的原因,我的错误。 我还添加了错误的截图。 另外如果有人可以提供库来创buildGIF文件的缩略图。 任何帮助,将不胜感激。

node.js设置cookie并发送gif作为回应

我在node.js(基于web beacon像素)中编写了一个脚本,需要设置cookie并将像素发送回客户端。 我的问题是,cookie是不是设置,如果我从代码中删除的部分,发送GIF的工作,但我无法find一种方法,使这两件事情在一起设置cookie并发送GIF回来。 http = require('http'); url = require('url'); http.createServer(function(req, res){ var requestURL = url.parse(req.url, true); if (requestURL.pathname == '/log.gif') { // Write a Cookie res.writeHead(200, { 'Set-Cookie' : 'id='+requestURL.query.id+'; expires=' + new Date(new Date().getTime()+86409000).toUTCString() }); var imgHex = '47494638396101000100800000dbdfef00000021f90401000000002c00000000010001000002024401003b'; var imgBinary = new Buffer(imgHex, 'hex'); res.writeHead(200, {'Content-Type': 'image/gif' }); res.end(imgBinary, 'binary'); } else { […]

ImageMagick识别报告不正确的GIF帧数

我正在使用ImageMagick来做一些GIF图像的东西。 我的一个步骤是identify图像中的帧数。 我通过node-imagemagick (和后面的gm )调用identify ,如下所示: identify -format '%T,%w,%h ' test.gif 大多数情况下,我正确地得到53帧空间分隔的53个值。 但是有时候我会得到47或50帧的相同的GIF图像 (有53帧)。 这怎么可能发生? 我在同一时间运行convert -coalesce -append test.gif other.gif ,但它不应该触摸原始图像,对不对? 此外,我检查和原始图像就好,即使错误的帧数报告。 我甚至不能一致地重现这一点。 我在哪里寻找问题? 这似乎发生在我同时运行多个ImageMagick进程时(在不同的文件上)。 我在2013-12-11使用ImageMagick 6.8.7-9 Q16 x86_64。 有问题的图片: (但是我发生过这种情况,其他图像。)

将图像作为框架添加到gif

所以我想创build一个gif并添加一个图像作为一个框架。 我正在使用gifencoder。 我见过的例子,它很容易添加颜色,TXT等,但我无法弄清楚如何做一个图像相同。 我需要像png文件stream吗? 例如:从网站的彩色框架 let canvas = new Canvas(width, height); var ctx = canvas.getContext('2d'); red rectangle ctx.fillStyle = '#ff0000'; ctx.fillRect(0, 0, 320, 240); encoder.addFrame(ctx); 编辑: 我试图做下面的事情,而框架出现在我的日志,因为想要的帧不添加,没有错误。 在有人build议将base64转换成png / gif之前,这个模块不能添加这样的帧,这就是说,如果你有另外一个想法,请继续说下去。 fs.createReadStream('test.gif') .pipe(new GIFDecoder) //gif-stream .pipe(concat(function(frames) { //concat-frames console.log(frames); for (var i=0; i<frames.length; i++) { encoder.addFrame(frames[i]); } })); 无论我什么尝试充其量我只得到一个黑色的GIF,没有更多。 编辑2: 好吧,所以我试图从gif框架中添加的原因,是因为它看起来更简单。 下面是我尝试获取图像的过程,将其转换为RGBA(我注意到模块接受rgba格式,而不是rgb,也许这就是为什么它总是黑色),然后添加框架。 如果我有数据,添加框架是非常容易的,因为我只是简单地调用一个方法并将数据推入,所以我将会离开它。 var request = […]