我想要一个动画GIF的每一帧的调色板。 我在node.js中使用npm库'gif-frames'将每一帧保存为图像,我的问题是大多数帧的图像都有奇怪的颜色,与在浏览器或Photoshop中打开GIF时看到的颜色不同。 我猜这是因为动画GIF的压缩方式。 我尝试使用PIL在Python中解决这个问题,但是我也遇到了同样的问题。 我怎样才能为每一帧获得一个图像,它的目标颜色?
这就是我用的代码
var gifFrames = require('gif-frames');
var fs = require('fs');
gifFrames({ url: 'icontech-2-2019-5.gif', frames: 67 }).then(function (frameData) {
frameData[0].getImage().pipe(fs.createWriteStream('firstframe.jpg'));
});
我在这个文件夹中收集了2个示例动画GIF和结果帧https://drive.google.com/drive/folders/154qmzq3ivtmqikox_murnqvuabt89xfw
我发现了问题,我只需使用模块指南中的参数cumulative:true
:“将cumulative指定为true将通过在以前的帧之上分层来计算每个帧。”