在开始和结束时暂停 GIF,并用叠加文本表示开始和结束
Pause a GIF at start and end with overlaid text to signal start and end
我有一个 GIF 动画,展示了如何重现错误报告。通常很难分辨 GIF 何时开始和何时结束。
如何使用以下选项修改 GIF?
- 第一帧暂停,文字 "Start" 叠加 1 秒。
- 最后一帧暂停,文字 "End" 叠加 1 秒。
如果您想在本地执行此操作或使用脚本自动执行此操作,您可以使用 imagemagick。我认为这应该有效:
convert sample.gif -coalesce -gravity center -pointsize 24 -fill dodgerblue -stroke navy \
\( -clone 0 -set delay 100 -annotate 0 'Start' \) -swap 0 +delete \
\( -clone -1 -set delay 100 -annotate 0 'END' \) -swap -1 \
-layers OptimizeFrame annotated.gif
(在 linux 上测试过,如果你是 运行 windows,也许你不需要用 \ 转义括号,我不确定)
如果您只需要处理一个 GIF,可以轻松地在线完成 - 在 http://ezgif.com/maker 中上传 GIF,将第一帧和最后一帧的延迟时间设置为 100,然后添加带有 "write" 工具,它会提供字体、大小、颜色、文本放置的界面,但基本上做同样的事情。
您可以插入任意数量的 frames/extensions,因为 GIF 不会因此而损坏。参见
How to find where does Image Block start in GIF images?
- 呈现开始和结束消息帧并将 booth 保存为静态 GIF
- 从 GIF 中提取 LZW 图像(删除 header 和扩展块)
- 编写一个脚本,将您的帧作为目标 GIF 的第一帧和最后一帧插入
要确保 1 秒暂停,您可以使用 _gfxext
before/after 设置了延迟 属性 的插入帧...唯一的问题可能是插入帧的调色板。如果存在本地调色板,则没有问题。如果您只有全局调色板,那么消息的颜色可能有误...
我有一个 GIF 动画,展示了如何重现错误报告。通常很难分辨 GIF 何时开始和何时结束。
如何使用以下选项修改 GIF?
- 第一帧暂停,文字 "Start" 叠加 1 秒。
- 最后一帧暂停,文字 "End" 叠加 1 秒。
如果您想在本地执行此操作或使用脚本自动执行此操作,您可以使用 imagemagick。我认为这应该有效:
convert sample.gif -coalesce -gravity center -pointsize 24 -fill dodgerblue -stroke navy \
\( -clone 0 -set delay 100 -annotate 0 'Start' \) -swap 0 +delete \
\( -clone -1 -set delay 100 -annotate 0 'END' \) -swap -1 \
-layers OptimizeFrame annotated.gif
(在 linux 上测试过,如果你是 运行 windows,也许你不需要用 \ 转义括号,我不确定)
如果您只需要处理一个 GIF,可以轻松地在线完成 - 在 http://ezgif.com/maker 中上传 GIF,将第一帧和最后一帧的延迟时间设置为 100,然后添加带有 "write" 工具,它会提供字体、大小、颜色、文本放置的界面,但基本上做同样的事情。
您可以插入任意数量的 frames/extensions,因为 GIF 不会因此而损坏。参见
How to find where does Image Block start in GIF images?
- 呈现开始和结束消息帧并将 booth 保存为静态 GIF
- 从 GIF 中提取 LZW 图像(删除 header 和扩展块)
- 编写一个脚本,将您的帧作为目标 GIF 的第一帧和最后一帧插入
要确保 1 秒暂停,您可以使用 _gfxext
before/after 设置了延迟 属性 的插入帧...唯一的问题可能是插入帧的调色板。如果存在本地调色板,则没有问题。如果您只有全局调色板,那么消息的颜色可能有误...