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


11

我从xooplate.com上取走了装载机,然后借助包含的动作将它们导出到了GIF。但是加载器周围有一些白色像素,当在深色背景上显示时,这些像素确实很烦人。在我从gif提取的框架中,您可以在这里看到它:

在此处输入图片说明

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


您可能要提及您使用的软件。我可以假设使用Photoshop,但是正确标记您的问题并提及您所使用的软件绝不会有任何伤害。
斯科特,

它是photoshop。我有兴趣删除那些白色像素,而不是透明度(KMSTR)
瑞安

1
kontur关于粗糙度的原因(即透明的开/关二进制状态)是正确的。根据上下文的不同,可以通过创建稍大一点,几乎相同的图像(另存为具有Alpha透明性的PNG)并将其放置为以低色动画gif为中心的静态背景图像来作弊。这样,您就可以确保较高的确定性来了解磨砂色(如kontur的答案所述)。
horatio

Answers:


19

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

在圆与圆底透明融合的圆角上,通常会有半透明的像素以平滑过渡。使用8位gif / png不能完全再现这种平滑过渡。

一种伪造方法是为所有这些半透明像素选择背景遮罩。这意味着那些不完全透明的像素将获得其颜色的计算,就好像它们位于遮罩色之上。

圆形gif中的白色像素是这样发生的,因为它们是gif用于白色背景。原始圆的半透明像素被栅格化为白色磨砂色,从而在拐角处产生几乎白色但完全不透明的像素。

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

在此处输入图片说明

在此图像中:

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

在不同背景下,请参阅此图像中以红色和白色遮罩导出的两种gif。这显示了红色遮罩如何与红色背景完美融合,还显示了如何干扰黑色背景下的白色遮罩。

在此处输入图片说明


如果不幸的是,您没有完整的抗锯齿Alpha的原始文件(即,您只有8位gif),则反转此遮罩栅格很麻烦-必须逐像素删除半透明像素中的遮罩颜色,然后使用更适当的设置将其重新导出。


5

在“另存为Web”对话框中,确保将窗口右侧的“遮罩”颜色设置为网页背景的颜色。

GIF不支持完整的8位透明性,它们仅支持1位透明性。最好的办法是使用与网页背景匹配的颜色,以使图像轻松融入该颜色。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.