微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有imagemagick的动画gif中的多种透明颜色?

如何解决带有imagemagick的动画gif中的多种透明颜色?

正在寻找一种方法,可以使用 imagemagick 使动画 gif 中的多种颜色(在本例中为 4,但将来是任意颜色)透明。我知道我可以使用多个 -transparent 命令,但是当合成动画 gif 时,它会导致一些奇怪的合成,前一帧保持渲染而不是清除画布。如果仅将一种颜色设为透明,则不会发生这种情况。

例如,这是原始图像:

animated gif 1

这是我的代码的结果。

converted animated gif

4 种背景颜色已成功透明化,但现在直接接触透明区域的动画部分在每一帧后都没有清除。

这是我的脚本:

/usr/local/bin/convert 'https://radblast.wunderground.com/cgi-bin/radar/WUNIDS_map?num=40&type=N0Q&mapx=400&mapy=240&brand=wui&delay=15&frame=0&scale=1&transx=0&transy=0&severe=0&smooth=0&centerx=400&centery=240&station=GRK&rainsNow=0&lightning=0&noclutter=0&showlabels=1&showstorms=0&rand=27081615' -transparent '#87876F' -transparent '#6C6C58' -transparent '#1C3575' -transparent '#162A5D' ~/Desktop/radar.gif

解决方法

这在 ImageMagick 中对我有用。您需要指定 -dispose 背景。

convert -dispose background anim.gif -transparent '#87876F' -transparent '#6C6C58' -transparent '#1C3575' -transparent '#162A5D' x.gif

enter image description here

,

好的,这是最终有效的方法;使用 -coalesce 将动画拆分为单独的帧并重新组合它们。

convert ~/Desktop/radar.gif -coalesce -transparent '#87876F' -transparent '#6C6C58' -transparent '#1C3575' -transparent '#162A5D' -layers OptimizeFrame ~/Desktop/radar.gif

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。