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
次のようなコードを使用して、最初の 6 バイトを自分で取得できます。
int G = getchar();
int I = getchar();
int F = getchar();
など .. 87a/89a 部分についても同じことを行うと、すべて最初の 6 バイトが取得され、GIF87a などの ASCII 文字が提供されます。
うーん、残りの情報を取得する方法がわかりません。同じ getchar(); を使用してみます。メソッドですが、それは私が期待するものではありません。幅と高さがそれぞれ 2 バイトであるため、350x350 の GIF ファイルがあるとします。しかし、この情報を基数 10 の実際の幅と高さを取得するにはどうすればよいでしょうか? 94 と 1 のビット論理積を試してみましたが、0 が返されることに気付きました。
幅と高さを取得する方法がわかれば、残りの情報に自分でアクセスできるようになると思います。
ピクセルの幅と高さはリトル インディアン形式で格納されます。