【发布时间】:2017-03-09 12:42:43
【问题描述】:
我有一个动画 GIF,它展示了如何重现错误报告。通常很难判断 GIF 何时开始和何时结束。
如何使用以下选项修改 GIF?
- 第一帧暂停,“开始”字样叠加 1 秒。
- 最后一帧暂停,“结束”字样叠加 1 秒。
【问题讨论】:
标签: image image-processing ffmpeg imagemagick gif
我有一个动画 GIF,它展示了如何重现错误报告。通常很难判断 GIF 何时开始和何时结束。
如何使用以下选项修改 GIF?
【问题讨论】:
标签: image image-processing ffmpeg imagemagick gif
如果您想在本地执行此操作或使用脚本自动执行此操作,您可以使用 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,可以在线轻松完成-将GIF上传到http://ezgif.com/maker,将第一帧和最后一帧的延迟时间设置为100,然后使用“写入”工具添加文本,它将为字体、大小、颜色、文本位置提供一个界面,但基本上做同样的事情。
【讨论】:
您可以插入所需的任意数量的帧/扩展,因为 GIF 不会被此破坏。见
How to find where does Image Block start in GIF images?
为确保 1 秒暂停,您可以在设置了延迟属性的插入帧之前/之后使用 _gfxext...唯一的问题可能是插入帧的调色板。如果存在本地调色板,则没有问题。如果你只有全局调色板,那么消息可能有错误的颜色......
【讨论】: