任务:
我想编写一个C ++头文件,可以加载给定的GIF文件并将其转换为RGBA像素数组。
问题:
我发现尝试阅读规范令人困惑,因为某些块(例如注释)可能出现在文件的任何位置。我也试过阅读其他GIF加载文件的源代码,但我发现这些也非常混乱。我曾尝试为它编写代码,但在它出错之后,我就删除了它并推迟尝试执行它,因为它不是必需的:它现在是。
限制:
我不希望使用外部库(建议提升在这里有点陈词滥调)或预先构建的代码,因为我想了解将要发生的事情,但出于以下几个原因编写我自己的代码:
我知道这是一个非常清单并且似乎没有必要但是当我之前说过堆栈溢出'没有图书馆'时,人们认为它是可选的,他们可以争辩我提交或强迫我的喉咙库。
问题:
最好的方法是理解(我发现规格混乱记得)并实现GIF加载,以便将GIF(可能是单个图像或一系列图像)转换为像素数组?在阅读时如何最好地忽略“不必要的”数据(至少在手头的任务方面,忽略评论等)?
为方便起见,您可以假设像素数组类已经存在。
明确的代码片段和解释将在这一点上受到赞赏。
答案 0 :(得分:1)
好的,因为我不能再编辑我的评论....正如Mat建议的那样,尝试理解规范。我推荐网站http://www.matthewflickinger.com/lab/whatsinagif/bits_and_bytes.asp#comment_extension_block,因为在我看来,它是gif格式结构的一个很好的信息来源,有很多图形和字节代码示例。例如,关于注释的问题:当您在数据流中找到字节对21 FE
时,这将引入注释块。以下字节表示ascii字符,在块的末尾,您将找到00
。