如果您查看GIF specification并搜索"背景颜色索引",您会看到以下说明:
vii)背景颜色索引 - 全局颜色表的索引 背景颜色。背景颜色是用于那些的颜色 屏幕上未被图像覆盖的像素。如果全球化 Color Table Flag设置为(零),此字段应为零和 应该被忽略。
这里存在歧义,即如果"全局颜色表标记"设置为零并忽略此字段,然后如果图像数据本身未覆盖整个图像区域,则未定义GIF的实际应该是什么背景颜色。这是可能的,因为每个图像数据块都独立地指定左/右/宽度/高度,并且不要求每个像素必须由图像数据编码。
我误解了这个吗?如果没有,那么在存在这种歧义的情况下,今天GIF实施的事实上的行为是什么?
答案 0 :(得分:0)
是的,确实存在歧义。背景颜色在很大程度上是GIF87a的遗弃,目前仅适用于“恢复背景”帧混合模式。
到目前为止,我所看到的所有解码器都将不属于任何帧的像素视为透明,即使所有帧中的透明标志都归零。
考虑这个GIF,例如:
了解您的浏览器如何解释它?整个背景是透明的。
P.S。:如果它没有循环,请使用Ctrl + F5重新加载页面。
答案 1 :(得分:0)
例如,Safari使用黑色作为背景。使用Win10照片查看器很难说,因为它无论如何都使用黑色背景。 Chrome,IE和Edge使用白色。 当没有背景颜色并且你需要一个时,规范没有定义行为,所以我猜任意选择是你得到的,尽管我投票选择透明是最明智的。