コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

ndsでのjpeg表示に再挑戦(4)

VS2008C++でビルドできるjpegのソースを見つけたので、ビルドしてjpegファイルを読み込んで見ようと思ったのですが、その前に、このソースに関することを調べてみました。
Jpegと書くのかな。これはlinuxの標準プログラムのようです。ちゃんと調べてはいないので間違っているかもしれません。
 このソースでJpegを展開するのは、djpegというコマンドのようです。今回はdjpegのソースを調べていけばいいことがわかりました。このdjpegはjpeg形式からいろいろな画像形式にデコードできるようです。さすがにndsのVRAM形式に変換できるものは無いですが、変換できる形式で近いものがないか、もしくはrawデータに近いものが無いか調べてみました。24ビットBMP形式はほぼrawデータなのですが、縦座標が反転してデータが並んでいるので、ちょっと、面倒です。他を調べたところ、PPM形式がほぼrawデータであることがわかりました。

PPM画像フォーマット

PPM形式は下記のようです。

  • P6・・・(2バイト)

最初の2バイトに24ビットカラー(Portable pixmapでBinary)を示す"P6"というコードが入っています。

  • 0x0a・・・(1バイト)

改行の1バイト(改行コードは0xaを使っています。

  • 画像幅 画像高さ

テキストで画像サイズが入っています。画像幅と画像高さの区切りは0x20(スペース)です。

  • 0x0a・・・(1バイト)

改行の1バイト(改行コードは0xaを使っています。

  • RGBカラーの最大値

画像データの最大値がテキストで入っています。RGB各データは1バイトなので最大255となります。

  • 0x0a・・・(1バイト)

改行の1バイト(改行コードは0xaを使っています。

  • 画像データ

画像データはRed,Green,Blueの3バイトがこの順でドット分並んでいます。24ビットrawデータと考えて大丈夫です。

djpegプログラムでppmデータを出力させることにします。とりあえず、VC2008C++でdjpeg.slnを読み込んで動かしてみようと思います。実際に読み込んでみると、「構成プロパティ」の「リンカ」で"..\jpeg\Debug\jpeg.lib"としてjpeg.libが指定されていたので、このlibもビルドする形で行ってみたいと思います。

今日はこの辺で。

本当にやりたいことリスト

(ブログの終わりにやりたいことを書いておきたいと思います)

  • 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
  • Androidプログラム
  • Web系のプログラム