任何 GIF 图片文件的前 13 个字节如下:
3 bytes - the ascii characters "GIF" 3 bytes - the version - either "87a" or "89a" 2 bytes - width in pixels 2 bytes - height in pixels 1 byte - packed fields 1 byte - background color index 1 byte - pixel aspect ratio
我可以通过使用某种代码自己获取前六个字节,例如:
int G = getchar();
int I = getchar();
int F = getchar();
等等 .. 对 87a/89a 部分做同样的事情,所有这些都获得前 6 个字节,为 GIF87a 等提供 ascii 字符。
好吧,我无法弄清楚如何获取其余信息。我尝试使用相同的 getchar(); 方法,但这不是我所期望的。假设我有一个 350x350 的 GIF 文件,因为宽度和高度各为 2 个字节,我使用 getchar 2 次,最终宽度为“94”和“1”,两个数字,因为有两个字节。但是我将如何使用这些信息来获得以 10 为底的实际宽度和高度?我尝试了按位与 94 和 1,但后来意识到它返回 0。
我想也许如果我能找到如何获得宽度和高度,我将能够自己访问其余信息。
像素宽度和高度以小印度格式存储。