在开始和结束时暂停 GIF,并用叠加文本表示开始和结束

Pause a GIF at start and end with overlaid text to signal start and end

我有一个 GIF 动画,展示了如何重现错误报告。通常很难分辨 GIF 何时开始和何时结束。

如何使用以下选项修改 GIF?

  1. 第一帧暂停,文字 "Start" 叠加 1 秒。
  2. 最后一帧暂停,文字 "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 不会因此而损坏。参见

要确保 1 秒暂停,您可以使用 _gfxext before/after 设置了延迟 属性 的插入帧...唯一的问题可能是插入帧的调色板。如果存在本地调色板,则没有问题。如果您只有全局调色板,那么消息的颜色可能有误...