尽管在现代 Web 上用处不大,但 GIF(图形交换格式)可以深入介绍图片编码的核心概念。
GIF 可以看作是图片数据的封装容器。它有一个称为“逻辑屏幕”的视口,用于绘制图像数据的各个帧,有点类似于 Photoshop 文档中的图层。这就是 GIF 如何支持其类似翻页动画的动画:将单个帧绘制到逻辑屏幕,然后替换为另一个帧,接着是另一个帧。当然,当我们处理静态 GIF(由绘制到逻辑屏幕的单个帧)时,这种区别并不重要。
GIF 使用无损数据压缩方法,即“Lempel-Ziv-Welch”算法的变体,供您参考。关于此算法的工作原理,我们并不在这里要详细讨论,但概括来讲:它的运作方式有点类似于“精简”JavaScript,其中重复的字符字符串会保存到某种内部字典中,以便可以在每次出现时引用,而不是重复。
大约 5 分钟