导出透明 GIF 时如何去除边缘周围的白色像素?

平面设计 adobe-photoshop 背景 透明度 gif
2022-01-19 03:04:20

我从xooplate.com获取加载器,然后在包含的操作的帮助下将它们导出为 GIF。但是我在加载器周围有一些白色像素,当在深色背景上显示时真的很烦人。你可以在这里看到它,在我从 gif 中提取的帧中:

在此处输入图像描述

如何防止那些白色像素并保持透明背景?

2个回答

透明度与8 位 gifs/png 一起使用的方式是像素要么是完全透明的,要么是完全不透明的。

在圆与背景透明混合的圆角上,通常会有半透明的像素来平滑过渡。8 位 gifs/png 无法完全再现这种平滑过渡。

一种伪造的方法是为所有这些半透明像素选择背景遮罩。这意味着那些不完全透明的像素会像在哑光颜色之上一样计算它们的颜色。

你的圆形 gif 中的白色像素是这样发生的,因为它们 gif 是为白色背景而设计的。原始圆圈的半透明像素与白色哑光颜色相映成趣,导致角落周围几乎是白色但完全不透明的像素。

如果您有原始的完全透明的圆圈,解决此问题的方法save for web & devices选择适合您背景的哑光颜色。这样,潜在的半透明像素将与哑光颜色合并为完全不透明的像素,并在您的网站上以相似的背景颜色查看,它会显得完全平滑。请注意,a)具有小范围半透明区域(以像素为单位)的图形效果最好,并且 b)这要求显示 gif 的背景是您为遮罩选择的一致颜色的一些内容。

在此处输入图像描述

在这张图片中:

  • 左上角是带有抗锯齿(即平滑)角的原始圆形图形。
  • 如右上角所示,使用 png-24 获得的结果相同 - 但这不适用于动画。
  • 左下视图显示图形的半透明像素如何转置到选定的红色哑光颜色上。还要注意那些完全透明的像素是如何保持完全透明的。而只有那些具有一点透明度的像素会被遮罩颜色“覆盖”,而完全不透明的像素完全不受透明度设置的影响(但是,它们会受到抖动类型和颜色选择的影响)。
  • 右下角类似于用于示例图像的导出选项。选择白色遮罩后,在左下角图像中显示红色的相同像素将在右下角图像中显示白色。如果您在白色背景下显示它,这是完全可以接受的。对于其他较暗的背景,白色像素会显示,因为使用错误的哑光颜色为任何不完全透明的像素创建完全不透明的像素。

请参阅此图像中以不同背景导出的红色和白色哑光的两个 gif。这显示了红色哑光如何与红色背景完美融合,但也显示了白色哑光在黑色背景下的干扰程度。

在此处输入图像描述


如果您处于不幸的情况,即您没有具有完整抗锯齿 alpha 的原始文件(即您只有 8 位 gif),则反转此遮罩光栅很麻烦 - 您必须逐个像素删除半透明像素的哑光颜色,然后使用更合适的设置重新导出它们。

在 Save for Web 对话框中,确保将窗口右侧的 Matte 颜色设置为网页背景的颜色。

GIF 不支持全 8 位透明度,它们仅支持 1 位透明度。您可以做的最好的事情是使用与网页背景相匹配的颜色,以便图像轻松融入该颜色。