对于个人项目,我正在创建一个静态 gif 解码器。到目前为止一切正常,除了我无法理解规范中的一个概念:
图像需要此块。数据流中的每个图像都必须存在一个图像描述符。每个数据流可能存在无限数量的图像。 (规格)
每个数据流无限图像?可以多于1个?我假设他们不是指动画 GIF,因为在他们声明的相同规范中,他们不建议将 gif 用于动画。
我已经阅读了很多其他记录 gif 格式的网站,它们都陈述了类似的内容。这是另一个链接:
GIF 中可能存在无限数量的图像。
有任何想法吗?
GIF87a 不允许动画,但可以在 GIF 中启用多个图像。
想法是将大图片分解(以获得更好的总压缩比)成几个矩形子图片,这些子图片绘制在最初填充背景颜色的公共画布上。每个子图片都有自己的 x、y、宽度、高度和调色板。例如,如果您正在绘制天文图片:地球和月球,这两个物体可能会在普通的大黑色画布上表示为两个小子图片。它不是动画:两个子图片同时可见。
但是这个美丽的想法没有得到软件(浏览器、图片查看器等)的支持,可能是由于这种非标准的方法。
从 GIF89a 开始,这些子图片被转换为动画帧。
一个 GIF 文件中可以存在多个图像。是的,GIF 文件可以执行粗略的动画,但通常并不漂亮。