node.js - 从 Node.js 中的动画 GIF 获取正确的调色板
问题描述
我想获得动画 GIF 的每一帧的调色板。我在 Node.js 中使用 npm 库 'gif-frames' 将每个帧保存为图像,我的问题是大多数帧的图像都有奇怪的颜色,与打开 GIF 时看到的颜色不同浏览器或在 Photoshop 中。我想这是因为动画 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
模块指南中的参数:“将累积指定为 true 将通过将每一帧叠加在前一帧之上来计算每一帧。”
推荐阅读
- java - 添加 admob 活动后,Android 应用程序未启动
- aws-api-gateway - serverless-offline:如果指定了 http_proxy,自定义授权器将不起作用
- python - Counter() 并绘制文本中最常见的单词
- python - 有人向我解释如何用库解决这个问题?matplotlib
- azure - 列出每个 Azure 子网上的 Azure NSG
- javascript - 克隆使用 RadioButtonFor 的行
- asp.net - Docusign dotnet 4.7 示例
- python - 是否有一个 python 模块可以一次绘制多个一个像素宽的点?
- ios - 如何正确删除 SnapshotListeners?
- ruby-on-rails - 如何在 ruby on rails 中重新创建 db 文件