画布-gif
npm i canvas-gif
什么是canvas-gif?
canvas-gif 是一个 NPM 库,允许您使用 node-canvas 操作 GIF 的帧。
canvas-gif 已被弃用。我很少使用 Node.js,更不用说我会用到这样的包了。如果您有兴趣接管开发,请随意分叉并自行发布。然而,我在这个图书馆的时间已经停止了。
它是如何运作的?
其工作原理如下:
- 将输入 GIF 作为缓冲区读取(可选:如果已启用该选项且 Graphicsmagick 可用,则合并 GIF)
- 将 GIF 解码为 UInt8Array(s)
- 为 GIF 中的每一帧创建一个画布实例
- 将 UInt8Array 转换为画布图像数据并将其放入上下文中
- 将上下文和其他相关信息传递给用户定义的 editFrame 函数,该函数将继续操作上下文。
- 将新编辑的帧的上下文添加到编码器
- 将编码器的数据作为Buffer输出并返回
我该如何利用它?
您可以通过运行使用 npm 下载它
然后您可以继续在代码中使用它。有关如何执行此操作的示例,请查看示例文件夹。
选项
所有这些选项都是可选的!哇
- coalesce - GIF 在被引擎处理之前是否应该由 GraphicsMagick 合并。需要安装 GraphicsMagick - 如果没有安装并且该选项为 true,则会抛出错误,并且代码将继续使用原始文件缓冲区。默认为false
- 延迟- 每帧之间的延迟量(以毫秒为单位)。默认为0
- 重复- GIF 应重复多少次。如果值为 0,则将永远重复。默认为0
- 算法- 编码器应使用的算法。可以是neuquant和octree之一。默认为neuquant
- optimiser - 编码器是否应使用其内置优化器。默认为false
- fps - 每秒渲染的帧数。默认为60
- 质量- GIF 的质量。 1-100 之间的值。数字越高,GIF 的质量就越好。默认为100
常见错误
合并期间出现错误:流产生空缓冲区。将缓冲区恢复为文件缓冲区!
如果启用了合并选项但缺少 GraphicsMagick,则会发生此错误。请从这里安装它,如果错误仍然存在,请随时将其报告为问题,我会尽力提供帮助!
该项目使用固执己见的酷儿许可证 v1.1 - tl;dr 请参阅此处:]
待办事项