突然ですが、JPEG の構造はだいたい下記のような感じになってます。 今回は libjpeg 等のライブラリを使わずに、JPEGファイルから画像の width と height を取り出したいと思います。この width と height の情報は、上図におけるフレームヘッダセグメントに入っています。 基礎知識 フレームヘッダセグメント フレームヘッダセグメントの中身は、以下のとおりです。 データ サイズ(bit) フレーム開始マーカー 16 フレームヘッダのサイズ(byte) 16 サンプル精度 8 height 16 width 16 省略 あとは、サンプリングファクタとかが延々と続くんですが、今回は不要なので省略しています。 ヘッダセグメント フレームヘッダ以外のヘッダセグメントには、EXIFデータやサムネイルなど、画像のデコードに直接関係ないメタデータが入っています。 JPEGでは
![JPEGのフレームヘッダを読んでwidthとheightを取り出す - 昼メシ物語](https://cdn-ak-scissors.b.st-hatena.com/image/square/111a94b698e1425c0a280a1c9b35adffe130f09d/height=288;version=1;width=512/http%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fm%2Fmirakui%2F20120916%2F20120916193948.png)