PicasaのDBを何とか解読したい (PMPファイル編)

PicasaのDBとはなにか?

Google PicasaとはGoogleの画像管理ツールないしwebサービスであり、デジカメの画像を管理するのに比較的良いインターフェースを持っている、というのをあらためて解説する必要はないだろう。そのPicasaは自身の管理するデータに関するメタデータを、Windowsで言うところの%LOCALAPPDATA%\Google\Picasa2\db3においている。
DBは大きく分けて二種類のファイルに分かれていて、片方はpmpファイルであり、もう一方はdbファイルである。

なぜ読みたいのか

HDDが壊れたのでせめてPicasaのサムネイルを復元したいからです。

PMPファイルの読み方

今回はdbファイルを読むには至らなかった。欲しいサムネイルはdbファイルに入っていて、更にindexではない方のdbファイルにはJFIF形式のJPEG画像が延々と入っているらしいことを確認している。しかし、これはただのJPEGの連続であり、もう一方のfoobar_index.dbというものを読まなければメタ情報は手に入らない。このファイル形式はThumbs.dbと同じであるという主張を確認できるが事実かはわからない。
そこで急がばまわれ、pmpファイルの方を解析してみることにした。
http://sbktech.blogspot.jp/2011/12/picasa-pmp-format.html

実際の実装

ただただ上のURLにあるバイナリのパーサを忠実に作る。そこにあるJavaのファイルよりだいぶ簡略にかけていると思う。
https://github.com/liquidamber/PicasaDB