マイコン工作実験日記

Microcontroller を用いての工作、実験記録

GIFを展開するには

2008-05-29 00:45:34 | LCD
Google MapsからGIF形式で地図画像を取得して表示するために、GIF形式データをLCDのビットマップに展開する方法について調べています。自分で展開ルーチンをゼロから起こす必要も無いだろうということで、netpbmに含まれているgiftopnmというコマンドのソースを使おうとしています。GIF形式を展開する処理はすべてgiftopnm.cの中に含まれているようなので、このコードから必要な部分だけ抜き出して利用できそうです。

GIF形式についてもざっと勉強して、Google Mapsの返すデータの内容を確認。
  • GIF バージョン89aを使用
  • 24ビット色から256色(8ビット)を選択して表示するためのカラーマップを持つ
  • 画像情報は画面左上側から順番に圧縮されて記録されているので、展開しながら順次表示していける
  • 展開の結果得られるのは、各ピクセルの色情報、すなわちカラーマップへのインデックス。

なるほど、頭からシーケンシャルに読みながら展開して表示していけるのですね。カラーマップは、Image Blockの中にImage Dataに先立って記録されています。カラーマップを読み込む際に、256のインデックスから16ビット色への変換表を作っておけば、あとはイメージデータを展開しながら、簡単に色データへ変換して表示できそうです。