使用 imagemagick 创建高质量 gif 会导致出现白斑

Posted

技术标签:

【中文标题】使用 imagemagick 创建高质量 gif 会导致出现白斑【英文标题】:Creating high quality gif with imagemagick causes white specks 【发布时间】:2021-02-08 23:45:09 【问题描述】:

我想从以下图像创建一个 gif:(我没有足够的声誉来嵌入它们)

https://github.com/Dragon8oy/argon-grub-theme/raw/master/docs/Crystals.png
https://github.com/Dragon8oy/argon-grub-theme/raw/master/docs/Grey.png
https://github.com/Dragon8oy/argon-grub-theme/raw/master/docs/Night.png

我正在使用:

convert -alpha remove -layers OptimizePlus -delay 150 -loop 0 *.png Gallery.gif

创建结果:

https://i.imgur.com/lgHskVq.gif

结果在第 3 帧的中山上有白色的规格。 我不担心文件大小,所以如果可以选择无损 gif,那就可以了。 谢谢:)

【问题讨论】:

你的IM版本和平台是什么?结果对我来说看起来不错。您的 Night.png 文件在输入图像中的山脉上有白点。因此它们将显示在输出 gif 中。 我使用的是 Debian Sid,IM 版本:6.9.11.24。 Night.png 中有白点,但没有在任何山上,中间山上覆盖着 Night.png 上没有的白点 【参考方案1】:

ImageMagick 量化默认使用抖动。您的 Night.png 图像具有超过 256 种颜色,而 GIF 仅允许 256 种颜色。因此,当量化为 256 种颜色时,斑点会从抖动中产生。您可以通过在命令中添加 +dither 来禁用抖动并获得更平滑的结果。这适用于我在 IM 6.9.11.34 Q16 Mac OSX 上。

convert -delay 150 Crystals.png Grey.png Night.png +dither -alpha off -loop 0 Gallery.gif

【讨论】:

以上是关于使用 imagemagick 创建高质量 gif 会导致出现白斑的主要内容,如果未能解决你的问题,请参考以下文章

使用 Imagemagick 创建 Gif - 转换:图像重叠

使用 ImageMagick 创建 GIF 图像时出错:异常过多和闪烁问题

分享一种压缩gif图片的方法,使用convert (ImageMagick中的命令)压缩图片

使用 ImageMagick 创建的动画 gif 具有故障块颜色背景

使用 ffmpeg 实现 MP4 与 GIF 的互转

带有 ImageMagick 和许多图像的 GIF 动画