使动画 GIF 文件的背景透明

平面设计 gif 背景去除 自由
2022-01-21 16:15:57

我一直在使用 GIMP 从我使用 Jmol 创建的几个 PNG 格式的帧创建动画 GIF 文件,现在我想知道如何使生成的 GIF 文件的背景透明。您建议的任何软件或网站都应该免费提供。

4个回答

您可以使用GIFsicle执行此操作,使用以下选项:

gifsicle -U --disposal=previous --transparent="#ffffff" -O2 anim.gif > anim_trans.gif

其中anim.gifanim_trans.gif是源文件名和目标文件名,并且#ffffff是要使其透明的颜色的十六进制代码(此处为纯白色)。

(这里的重要选项是-U/--unoptimize--disposal=previous,它们一起将动画转换为“翻书模式”,其中每一帧在绘制下一帧之前都被完全擦除。这允许将额外的透明度添加到帧中,而不会让较早的帧通过透明部分。该-O2选项并非绝对必要,但它可能会通过优化帧来缩小生成动画的文件大小,以避免不必要地重新绘制动画的静态部分。)

作为演示,这是来自 Wikimedia Commons的人类乙二醛酶 I (GLO1) 酶的动画(左),以及使用上面显示的方法添加的具有透明度的相同动画(右):

白色背景的原始动画 具有透明背景的修改动画
维基共享资源用户WillowW的原创动画,在CC-By 3.0许可下使用。

值得注意的一个细节是,如果 GIFsicle 命令似乎没有任何效果,您应该检查背景颜色是否真的正确。例如,对于上面显示的动画,实际的背景颜色变成了#fdfffc(即非常略带黄绿色的白色)而不是#ffffff(纯白色)。你实际上无法通过肉眼分辨出区别(或者,至少,我不能在这个屏幕上做到这一点),但足以让 GIFsicle 认为这两种颜色不同。

另请注意,GIF 文件仅支持 1 位透明度,这意味着透明区域的边缘不会被消除锯齿。只要您显示动画的背景与原始背景颜色不相距太远,就可以了,但如果是,您可能会发现动画边缘会出现一些难看的颜色边缘。不幸的是,除了选择更合适的背景或重新渲染动画外,您无能为力。

试试http://www.gifmagic.com

这很容易。

选择:1)编辑

2)透明度

3)添加和

4) 选择您要申请的区域。

与 GIFsicle 和 GIFmagic 类似,EzGIF是一组在线 GIF 工具(除其他外),您可以这样做:

  1. 选择“效果”
  2. 上传 GIF
  3. 然后使用“用透明度替换颜色”框
  4. 并申请

(如果需要,您还可以优化结果)

如果您有 imagemagick,您可以convert input.gif -transparent white output.gif在终端中运行该命令。