Imagemagick:如何减小具有大静态区域的动画 GIF 的大小?

标签 image imagemagick compression gif animated-gif

我根据屏幕截图创建了一个动画 output.gif,最终未压缩为 89MB。 GIF 的一半是静态的,但最好将它们放在一起,而不是图像 + 包含移动部分的 GIF。

使用 Imagemagick 和以下命令,我设法将其大小减小到 18.1MB:

convert output.gif -coalesce -fuzz 3% +dither -layers Optimize compressed.gif

增加百分比会产生更小的尺寸结果,但质量会受到影响。

鉴于此 GIF 包含较大的静态非动画区域,您是否建议使用一个选项来更好地减小文件大小而不影响质量?

更新 我为此使用 Ubuntu,这是我的完整工作流程:

  1. 使用Kazam截屏正是我所需要的,因此无需进行任何类型的编辑。
  2. 使用命令ffmpeg -i input.avi output.mp4 转换成mp4。
  3. 为框架创建目录mkdir frames
  4. 生成中间图像 ffmpeg -i output.mp4 -r 25 'frames/frame-%04d.png'
  5. 转到框架 cd 框架
  6. 从图像 convert -delay 4 -loop 0 *.png output.gif 生成 GIF。
  7. 优化和压缩 GIF 以减小文件大小 convert output.gif -coalesce -fuzz 3% +dither -layers Optimize compressed.gif

最佳答案

减小 GIF 大小的最佳方法是将尽可能多的帧置于“组合”模式。这些帧仅包含与前一帧相比发生变化的内容,这可能非常小,但这可能需要所有帧都使用完全相同的颜色图进行编码,并且相同的部分是真正相同的(没有模糊性,没有随机编码伪影) . Gimp 可以做到这一点,但其他专门用于 GIF 处理的实用程序也可以做到这一点(也许是 Gifsicle)?

此外,屏幕截图的 GIF 动画不必是 25fps,10fps 就足够了。

关于Imagemagick:如何减小具有大静态区域的动画 GIF 的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54915097/

相关文章:

html - iOS:从 NSString(一个 html 字符串)中剥离 <img...>

android - 如何使用 FTPClient 将图片上传到 FTP?

text - 是否可以使用 ImageMagick 渲染多色表情符号?

image - 使用 ImageMagick 将图像批量调整大小到新文件夹中

http - 哪些浏览器声称支持 HTTP 压缩但实际上是不稳定的?

带有加密文件系统的 MySQL 数据库用于存储图像

php - 如何让图片不拉伸(stretch)

node.js - 捕获 imagemagick 错误 - Node 崩溃

zip - 如何找到 zip 文件的压缩级别?

algorithm - Weissman 压缩分数是否有效?