如何使用 imagemagick 制作高质量的动画图像

2024-03-17

我想从这些 .png 图像制作一个动画 gif:

我用这个命令来做到这一点:

convert -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

它成功制作了 gif 动画,但是输出的质量非常低并且比输入图像小:

经过一番搜索,我得到了 -quality

convert -layers OptimizePlus -delay 25x100 -quality 99 ps1-*.png -loop 0 ps1.gif

但似乎 imagemagick 忽略了该参数。


问题是您的源 PNG 具有 GIF 不支持的 Alpha 通道。所以你必须去除透明度 http://www.imagemagick.org/Usage/masking/#remove首先从你的源图像。由于您正在处理多个源图像,因此不能使用-flatten方法。对于较新的 ImageMagick 版本,以下内容应该可以工作:

convert -background white -alpha remove -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

如果您的 ImageMagick 版本低于 6.7.5,您可以尝试:

convert -bordercolor white -border 0 -layers OptimizePlus -delay 25x100 ps1-*.png -loop 0 ps1.gif

我使用后一个命令得到了以下结果:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 imagemagick 制作高质量的动画图像 的相关文章

随机推荐

  • 为什么javascript函数的返回值未定义?

    我有一个函数来检测图像的大小 我希望它返回一个包含宽度和高度的对象 在下面的代码中 sz width 和 sz heightwithin该函数保存这些值 但在返回该值后 该值是未定义的 我缺少什么 function getImgSize i
  • 如何将数据库适配器传递给另一个活动?

    我在理解 Android SDK 中的搜索对话框时遇到一些困难 我的应用程序的 主要活动 提供了一个按钮 如果用户单击此按钮 则会调用搜索对话框 然后 搜索本身在异步任务中完成 因为它可能需要一些时间 到目前为止 一切都很好 主活动还创建一
  • UITextView委托问题

    我正在尝试访问 UITextView 委托并遇到问题 我有一个带有 UITextViewDelegate 协议的 UIViewController 和一个包含 textView 的 Nib 如果我在 viewDidLoad 中设置委托 如
  • 这是以编程方式终止(取消)芹菜任务的最佳方法

    根据 Celery 的文档 我们不应该使用terminate选项中revoke 取消正在执行的任务的函数 当任务陷入困境时 终止选项是管理员的最后手段 它不是为了终止任务 而是为了终止正在执行任务的进程 并且该进程可能在发送信号时已经开始处
  • relativeSource 适用于(嵌套)子属性,而 ElementName 则不适用于

    下面代码的问题是 绑定到SomeClassProp SubTextProp不起作用 源属性未设置为文本框内容 而TextProp确实如此 XAML
  • EXC_BAD_ACCESS 当行数为​​ 0 时 UITableView 崩溃

    当我将表中的行数设置为零时 我的 UITableView 发生了一致的崩溃 它因 EXC BAD ACCESS 错误而崩溃 崩溃是 UITableView 内部的 所以我无法直接看到出了什么问题 尽管这对我来说应该是一个愚蠢的错误 堆栈跟踪
  • C 中快速高效的最小二乘拟合算法?

    我正在尝试对两个数据数组实现线性最小二乘拟合 时间与幅度 到目前为止 我知道的唯一技术是测试 y m x b 中所有可能的 m 和 b 点 然后找出最适合我的数据的组合 以便其误差最小 然而 我认为迭代这么多组合有时是没有用的 因为它测试了
  • matlab中字符串的最大长度

    我是 matlab 的新手 我正在尝试解决以下场景 我有大字符串 需要对其进行异或编码才能获得值 我正在使用以下代码片段来执行该操作 clear clc first abceeeeeeeeeeeeeeeddddddddddddd secon
  • 单击时显示 NSUserNotification 附加操作

    在上图中 您可以在 OS X 上看到两个通知 第一个来自我的应用程序 第二个来自 Apple 的 Reminders app 在图像中你可以看到otherButtonTitle 完成 和actionButtonTitle 之后 第二个通知
  • Plotly R:根据不同的条形颜色更改hoverinfo字体颜色

    我有这个数据框 df2 data frame value c 9 2 7 3 6 key c ar or br gt ko 这是我必须生成的代码这个情节 https i stack imgur com gZCg1 png df2 gt pl
  • 令人困惑的 PHP 按位 NOT 行为

    在 PHP 中 如果我运行以下简单程序 number 9 var dump number 我的输出是 int 10 这让我很困惑 我thought 是按位NOT操作员 所以我期待类似的事情 if binary 9 is 0000000000
  • Android Studio 上的 Android Tesseract OCR [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 一段时间以来 我一直在尝试将 tesseract 包含在 Android Studio 上的 Andro
  • 用户代码可以安全地使用结构体填充吗?

    假设我有一个如下所示的结构 struct Struct char Char int Int and sizeof int 大于 1 编译器会添加填充Char成员变量 编译器生成的代码是否允许更改填充字节的值 我的意思是 如果我使用指针算术并
  • 使用 Apache POI 访问数据透视表的字段设置

    我正在创建一个工作簿 其中包含来自数据源的填充数据的工作表 然后使用该数据的数据透视表视图创建第二个工作表 一切工作正常 但我似乎无法更改数据透视表的默认外观 我正在尝试获取设置 行标签 gt 从列表中单击一个 gt 字段设置 gt 小计
  • 所有对mock的调用在设置字符串参数时都必须有相应的设置

    我正在测试一个简单的方法 当我运行测试时出现错误 模拟上的所有调用都必须有相应的设置 在最后一行 dataField DefaultValue orderNumber ToString 什么会导致这种情况呢 我只是设置一个字段 void I
  • 为什么foldr可以在Haskell中的无限列表上工作,而foldl却不能?

    我一直在努力理解foldl vs foldr vs foldl 在哈斯克尔 我理解共识是使用foldr when f第二个参数是惰性的 因为它反映了列表的结构 foldl 当我们知道需要处理整个列表并且f其论点很严格 我对这样的情况特别感兴
  • 在 Perl 中是否有更好的方法来确定经过的时间?

    my start time Time HiRes gettimeofday my diff Time HiRes tv interval start time print n n diff n 可能吧 取决于你所说的 更好 是什么意思 如果
  • Google Apps 抓取脚本会定期运行,直到提取所有网站的内页吗?

    我已经完成了一个抓取脚本 通过爬行逐一抓取任何网站 要输入的网址 的内部页面 获取其他内部网址并继续获取所有页面并提取其纯文本 剥离的html 该脚本运行良好 但 google 脚本运行限制为 6 分钟 因此对于大型网站 它无法运行 6 分
  • 需要在 Internet Explorer 脚本错误中查找行/字符的实际位置?

    我在 IE 中收到脚本错误 线路 59 字符 71 错误 需要标识符 字符串或数字 代码 0 第 59 行 第 71 字符似乎与我的代码实际上并不对应 它甚至没有说是什么文件 但我已经查看了我的主要 javascript 文件 查看了页面源
  • 如何使用 imagemagick 制作高质量的动画图像

    我想从这些 png 图像制作一个动画 gif 我用这个命令来做到这一点 convert layers OptimizePlus delay 25x100 ps1 png loop 0 ps1 gif 它成功制作了 gif 动画 但是输出的质